此处我遇到了有关获取Android平板电脑IP地址的问题。
我以通用方式使用以下代码获取平板电脑IP地址。
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
inetAddress.getHostAddress()方法返回的IP地址为 fe80 :: 9a4b:4aff:fe00:a6e1 ,这是一种不同的格式,而不是 122。 xx.xxx.xxx 格式。
当我使用Wifimanager类获取平板电脑IP地址时,它仅以此格式返回 122.xx.xxx.xxx 。
但是使用通用的方式我不知道它为什么提供错误的格式。
任何人都可以帮我解决这个问题......
提前致谢。
答案 0 :(得分:0)
fe80::9a4b:4aff:fe00:a6e1
完全没有错。它只是新式的IPv6。
新的应用程序应始终设计为能够以两种格式工作。
答案 1 :(得分:0)
这是一个IPv6地址。首先看一下wikipedia article。可以将IPv6地址转换为IPv4地址(即xxx.xxx.xxx.xxx),但不能保证。