获取用于从Android设备连接到Firebase的IP地址
问题描述:
我正在创建一个将数据发送到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();
答
如果设备连接到来自网络服务提供商的蜂窝数据,那么您可能无法获得您正在查找的行为。他们的内部路由器可能会或可能不会共享该IP,或阻止某些网络流量。
但是,您可以击中可以提供此信息的外部网站。
尝试以下方法之一:
-
WhatIsMyIP.com提供了这样的事情开发商API。
https://www.whatismyip.com/api-documentation/
不仅仅是击中服务器本身更容易。
-
在它的最原始的形式,它只是返回的IP地址。
希望其中之一能让您走上正确的道路。