【发布时间】:2011-12-24 07:01:45
【问题描述】:
这里我遇到了关于获取 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。
但是使用通用方式,我不知道为什么它给出了错误的格式。
谁能帮我解决这个问题...
提前致谢。
【问题讨论】:
-
我对 android API 了解不多,但是 AFAIK,fe80::9a4b:4aff:fe00:a6e1 太大而不能成为 IP 地址。看起来你使用了错误的方法。