获取用于从 Android 台设备连接到 Firebase 的 IP 地址

Get IP Address used to connect to Firebase from Android device

我正在创建一个将数据发送到 Firebase 服务器的 Android 应用程序。我无法做的是获取用于连接到 Firebase 服务器的 public IP 地址。当用户使用 3G 时,下面的代码给出了无用的私有 IP,因为每次用户通过其移动数据连接到 3G 时它都会改变。 因此,我想获取用于向 Firebase 服务器发出请求的 public IP 地址

如果我没记错的话,下面的代码给了我私有IP地址。

WifiManager wifiMan = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
int ipAddress = wifiInf.getIpAddress();

如果设备连接到来自网络服务提供商的蜂窝数据,那么您可能无法获得所需的行为。他们的内部路由器可能共享也可能不共享该 IP,或阻止某些网络流量。

但是,您可以访问可以提供此信息的外部站点。

尝试以下操作之一:

  1. WhatIsMyIP.com 为这类事情提供开发人员 API。

    https://www.whatismyip.com/api-documentation/

    比直接访问服务器本身更容易。

  2. http://ifcfg.me/ip

    它只是 returns 最原始形式的 IP 地址。

希望其中之一能让您走上正确的道路。