如果手机连接的是wifi,获取到是192.168.1.1这种格式的地址,
如果连接的是移动网络,获取到的是10.109.51.213这种格式。
public String getHostIP() {
String hostIp = null;
try {
Enumeration nis = NetworkInterface.getNetworkInterfaces();
InetAddress ia = null;
while (nis.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) nis.nextElement();
Enumeration<InetAddress> ias = ni.getInetAddresses();
while (ias.hasMoreElements()) {
ia = ias.nextElement();
if (ia instanceof Inet6Address) {
continue;// skip ipv6
}
String ip = ia.getHostAddress();
if (!"127.0.0.1".equals(ip)) {
hostIp = ia.getHostAddress();
break;
}
}
}
} catch (SocketException e) {
Log.i("yao", "SocketException");
e.printStackTrace();
}
return hostIp;
} 没有联网时,返回“null”
本文介绍了一种通过Java代码获取手机当前所连接网络(WiFi或移动数据)IP地址的方法。该方法可以区分不同类型的网络连接,并针对每种情况返回相应的IP地址。如果没有连接到任何网络,则返回null。
291

被折叠的 条评论
为什么被折叠?



