获取用于从 Android 设备连接到 Firebase 的 IP 地址 [重复]
Posted
技术标签:
【中文标题】获取用于从 Android 设备连接到 Firebase 的 IP 地址 [重复]【英文标题】:Get IP Address used to connect to Firebase from Android device [duplicate] 【发布时间】:2017-02-10 20:54:10 【问题描述】:我正在创建一个将数据发送到 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();
【问题讨论】:
【参考方案1】:如果设备已连接到来自网络服务提供商的蜂窝数据,那么您可能无法获得所需的行为。他们的内部路由器可能会或可能不会共享该 IP,或阻止某些网络流量。
不过,您可以点击可以提供此信息的外部网站。
尝试以下方法之一:
WhatIsMyIP.com 为这类事情提供了开发者 API。
https://www.whatismyip.com/api-documentation/
比仅仅访问服务器本身更容易。
http://ifcfg.me/ip
它只是以最原始的形式返回 IP 地址。
希望其中之一能让你走上正确的道路。
【讨论】:
以上是关于获取用于从 Android 设备连接到 Firebase 的 IP 地址 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Socket Programming 连接 Android 设备?
设备在Android中连接到WiFi时如何获取蜂窝网络的IP地址