【问题标题】:Do Android devices have a static IP address?Android 设备是否有静态 IP 地址?
【发布时间】:2012-03-11 07:37:03
【问题描述】:

Android 设备是否有一个服务器可以识别它们的静态 IP 地址?我想知道这将允许我的游戏无需登录即可保存数据。

【问题讨论】:

  • 我不知道IP,但他们应该有一个唯一的mac地址。
  • 考虑当用户更换/升级设备并从备份或 SD 卡恢复数据时会发生什么。该新设备是否应该被视为来自同一用户?如果是这样,那么您可能不想被绑定到硬件或网络配置的任何属性。

标签: android ip


【解决方案1】:

这完全取决于它们连接到什么。默认情况下,没有。大多数 Android 设备都为无线网络配置了 DHCP,我不知道有任何运营商会为其数据网络上的移动设备分配静态 IP 地址。

【讨论】:

  • 我一直在寻找一种方法来修复我的 Android 移动 IP,通过某种代理或 IP 欺骗器或其他方式,但到目前为止无济于事。我正在尝试仅从单个 IP 保护对路由器的远程访问,如果我的 IP 一直在变化,我将无法可靠地执行此操作。至少在 Play 商店中似乎没有任何有用的东西。如果我发现了什么,我会回帖。
【解决方案2】:

正如其他人已经回答的那样,不,移动设备通常没有静态 IP 地址,而是使用 DHCP 获取动态 IP 地址。

但是,要回答您的基本问题,您可以使用 java.util.UUID class 为用户生成一个唯一令牌。将此生成的令牌保存到您应用的 SharedPreferences 中,您可以使用它来识别您的用户:

public static String getDeviceUuid(Context context) {
    final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

    // Attempt to get an existing device uuid
    String uuid = preferences.getString("device_uuid_key", "");
    if (TextUtils.isEmpty(uuid)) {
        // We don't have a device id, generate one!
        uuid = UUID.randomUUID().toString();

        // Persist the new id to shared preferences
        final Editor editor = preferences.edit();
        editor.putString("device_uuid_key", uuid);
        editor.commit();
    }
    return uuid;
}

【讨论】:

  • 换个设备怎么样?这不会改变令牌
  • 是的,这会改变令牌。此外,如果他们卸载该应用程序,然后重新安装它,他们将获得一个新令牌。如果您想在这些更改中识别它们,您最终需要将令牌与用户帐户(电子邮件地址或用户名)相关联。这样他们就可以在重新安装您的应用或更换设备时登录该帐户。
【解决方案3】:

Android 设备既可以通过 WiFi 连接,也可以通过 3G 连接,这显然具有不同的 IP。
每次重连时,3G上的IP地址也会发生变化。

【讨论】:

    【解决方案4】:

    移动运营商使用 DHCP(动态主机配置协议)是一种应用层协议,用于为新连接到其网络的设备分配 IP 地址,并为移动设备分配可重复使用的 IP 地址。

    【讨论】:

      猜你喜欢
      • 2022-11-22
      • 2020-04-26
      • 2013-08-10
      • 1970-01-01
      • 2012-05-29
      • 2018-11-04
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      相关资源
      最近更新 更多