5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:
性别:秘密
最后登录:2008-03-06
http://zhouanle.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2005/08/23 | 在Java中正确的获取本机所有的IP
类别(求知)
|
评论
(0)
|
阅读(147)
|
发表于 14:34
这个问题以前的blog上写过, 可我怎么也找不到了. 反正当时的方法是有问题的, 正好在这里重新写一遍. 以前用的方法是:
public String getLocalIP() {
try {
java.net.InetAddress inet = java.net.InetAddress.getLocalHost();
return inet.getHostAddress();
} catch (java.net.UnknownHostException ex) {
return null;
}
}
这个方法的缺陷是在Linux系统上Java读的是配置/etc/hosts里的内容, 如果用户自己修改了该文件的内容, 此方法无法正确使用.
新的方法则避免了读取配置文件, 此方法在Windows, Linux, Mac OS X下均调试通过.
public String getLocalIP()
{
Enumeration e1 = (Enumeration) NetworkInterface.getNetworkInterfaces();
while(e1.hasMoreElements())
{
NetworkInterface ni = (NetworkInterface) e1.nextElement();
System.out.print(ni.getName());
System.out.print(": ");
Enumeration e2 = ni.getInetAddresses();
while(e2.hasMoreElements())
{
InetAddress ia = (InetAddress) e2.nextElement();
if (ia instanceof Inet6Address) continue; //omit IPv6 address
System.out.print(ia.getHostAddress());
if(e2.hasMoreElements())
{
System.out.print(", ");
}
}
System.out.print("\n");
}
}
0
评论
Comments
日志分类
首页
[105]
日记
[84]
音乐
[3]
相册
[1]
求知
[17]