查看完整版本: [-- Windows和Linux上使用Java获取本机Ip地址 --]

风信Java论坛 ›› Java 基础开发 ›› Windows和Linux上使用Java获取本机Ip地址 登录 -> 注册

1F Windows和Linux上使用Java获取本机Ip地址   唧唧 Post by : 2010-12-06 16:36:10.0

Windows可以用如下代码:

   java代码
  1. InetAddress inet = InetAddress.getLocalHost();    
  2. System.out.println("本机的ip=" + inet.getHostAddress()); 

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

   java代码
  1. //根据网卡取本机配置的IP    
  2. Enumeration netInterfaces=NetworkInterface.getNetworkInterfaces();    
  3. InetAddress ip = null;    
  4. while(netInterfaces.hasMoreElements())    
  5. {    
  6.     NetworkInterface ni= NetworkInterface)netInterfaces.nextElement();    
  7.     System.out.println(ni.getName());    
  8.     ip=(InetAddress) ni.getInetAddresses().nextElement();    
  9.     if( !ip.isSiteLocalAddress()    
  10.             && !ip.isLoopbackAddress()    
  11.             && ip.getHostAddress().indexOf(":")==-1)    
  12.     {    
  13.         System.out.println("本机的ip=" + ip.getHostAddress());    
  14.         break;    
  15.     }    
  16.     else   
  17.     {    
  18.         ip=null;    
  19.     }    
  20. }  

风信Java论坛 ›› Java 基础开发 ›› Windows和Linux上使用Java获取本机Ip地址 登录 -> 注册

查看完整版本: [-- Windows和Linux上使用Java获取本机Ip地址 --]
CopyRight © 2008-2009 JavaWind.Net Studio All Rights Reserved
Powered By JWind.BBS Vesion 1.0.0 Beta1 Processed in 8 ms,0 (Queries)  Gzip enabled
粤ICP备07511478号