2016-10-02 70 views
1

我正在创建一个将数据发送到Firebase服务器的Android应用。我无法做的是获取用于连接到Firebase服务器的公共IP地址。当用户使用3G时,下面的代码给出了私有IP,这是无用的,因为每当用户在他的移动数据上连接到3G时它就会改变。 因此,我想获取用于向Firebase服务器发出请求的公共IP地址。获取用于从Android设备连接到Firebase的IP地址

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

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

回答

1

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

但是,您可以击中可以提供此信息的外部网站。

尝试以下方法之一:

  1. WhatIsMyIP.com提供了这样的事情开发商API。

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

    不仅仅是击中服务器本身更容易

  2. http://ifcfg.me/ip

    在它的最原始的形式,它只是返回的IP地址。

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

相关问题