可以用如下代码:
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;
}
}
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




