我正在创建一个将数据发送到Firebase服务器的Android应用。我无法做的是获取用于连接Firebase服务器的公共IP地址。当用户使用3G时,下面的代码给出了无用的私有IP,因为每次用户通过移动数据连接到3G时它就会发生变化。 因此,我想获取用于向Firebase服务器发出请求的公共IP地址
如果我没错,下面的代码会给我私有IP地址。
WifiManager wifiMan = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
int ipAddress = wifiInf.getIpAddress();
答案 0 :(得分:2)
如果设备连接到网络服务提供商的蜂窝数据,那么您可能无法获得所需的行为。他们的内部路由器可能会也可能不会共享该IP,或阻止某些网络流量。
但是,您可以点击可以提供此信息的外部网站。
请尝试以下操作之一:
WhatIsMyIP.com为此类活动提供了开发人员API。
https://www.whatismyip.com/api-documentation/
比仅仅点击服务器本身更容易。
它只返回最原始形式的IP地址。
希望其中一条能让你走上正确的道路。