求助!用InetAddress 的 getHostAddress()方法获取IP不正确!不过这种情况是随机性的。

Mayxizi 2015-04-03 06:07:54
是android系统上面,可以插网线的,有时候开机后会获取到错误的IP地址,本来得到的应该是当前局域网的网段内的地址。是什么原因?代码如下:看log似乎是访问dhcp出现问题了,这种偶然性的问题要怎么解决啊,
public String getEthernetIPAddr() {
String ip = null;
try {
Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ia;
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface)netInterfaces.nextElement();
if (ni.getName().equals(mInterfaceName)) {
Enumeration<InetAddress> address = ni.getInetAddresses();
while (address.hasMoreElements()) {
ia = address.nextElement();
if (!ia.isLoopbackAddress() && (ia.getHostAddress().indexOf(":")==-1)) {
ip = ia.getHostAddress();
if (localLOGV) Slog.v(TAG, "getIP: " + ip);
break;
}
}
}
}
}
catch (SocketException e) {
e.printStackTrace();
}
return ip;
}
...全文
472 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mayxizi 2015-04-06
  • 打赏
  • 举报
回复
没人知道吗???没人遇到过吗???

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧