【发布时间】:2019-11-13 19:35:20
【问题描述】:
Android应用返回的手机IP地址与手机设置中显示的不一样。
我尝试使用以下示例代码读取从移动网络分配给仅连接到移动网络的 Android 手机(运行 Android 7)的 IP。 Android 应用返回 10.130.151.51,但从手机菜单中找到的 IP 地址是 49.130.28.201。
有人知道为什么以及如何获得正确的吗?
public String Get_Mobile_IP(){
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkinterfaces();
en.hasMoreElements();) {
NetworkInterface networkinterface = en.nextElement();
for (Enumeration<InetAddress> en_IP = networkinterface.getInetAddresses(); en__IP.hasMoreElements();) {
InetAddress mobile_IPaddr = en_IP.nextElement();
if (!mobile_IPaddr.isLoopbackAddress() && mobile_IPaddr instanceof Inet4Address) {
return mobileIPAddr.getHostAddress();
}
}
}
} catch (Exception ex) {
}
return null;
}
【问题讨论】:
-
我可以使用 Android 编码读取 IP 地址。我遇到的问题是应用程序返回的值与手机的手机菜单中显示的值不一样。
-
我发现我必须关闭Android手机中的“VoLTE”才能获得正确的结果
标签: android mobile ip-address