java获取本机的ip地址

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

可以用如下代码:

InetAddress inet = InetAddress.getLocalHost();

System.out.println("本机的ip=" + inet.getHostAddress());

在window下面可以工作。在Linux下返回127.0.0.1。主要是在linux下返回的是/etc/hosts中配置的localhost的ip地址,而不是网卡的绑定地址。后来改用网卡的绑定地址,可以取到本机的ip地址:)

代码如下:

//根据网卡取本机配置的IP

Enumeration netInterfaces=NetworkInterface.getNetworkInterfaces();

InetAddress ip = null;

while(netInterfaces.hasMoreElements())

{

NetworkInterface ni=(NetworkInterface)netInterfaces.nextElement();

System.out.println(ni.getName());

ip=(InetAddress) ni.getInetAddresses().nextElement();

if( !ip.isSiteLocalAddress()

&& !ip.isLoopbackAddress()

&& ip.getHostAddress().indexOf(":")==-1)

{

System.out.println("本机的ip=" + ip.getHostAddress());

break;

}

else

{

ip=null;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有