package com.hanchao.test; 
 
import java.net.InetAddress; 
 
/** 
 * 获取本机IP的程序 
 * @author hanchao 
 */ 
public class GetLocalIp { 
     
    /** 
     * 知识的补充 
     *  
     * InetAddress 继承自 java.lang.Object类 
     * 它有两个子类:Inet4Address 和 Inet6Address 
     * 此类表示互联网协议 (IP) 地址。  
     *  
     * IP 地址是 IP 使用的 32 位或 128 位无符号数字, 
     * 它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。 
     *  
     * ************************************************ 
     * 主机名就是计算机的名字(计算机名),网上邻居就是根据主机名来识别的。 
     * 这个名字可以随时更改,从我的电脑属性的计算机名就可更改。 
     *  用户登陆时候用的是操作系统的个人用户帐号,这个也可以更改, 
     *  从控制面板的用户界面里改就可以了。这个用户名和计算机名无关。 
     */ 
     
    /** 
     * 获取本机的IP 
     * @return Ip地址 
     */ 
     public static String getLocalHostIP() { 
          String ip; 
          try { 
               /**返回本地主机。*/ 
               InetAddress addr = InetAddress.getLocalHost(); 
               /**返回 IP 地址字符串(以文本表现形式)*/ 
               ip = addr.getHostAddress();  
          } catch(Exception ex) { 
              ip = ""; 
          } 
           
          return ip; 
     } 
      
     /** 
      * 或者主机名: 
      * @return 
      */ 
     public static String getLocalHostName() { 
          String hostName; 
          try { 
               /**返回本地主机。*/ 
               InetAddress addr = InetAddress.getLocalHost(); 
               /**获取此 IP 地址的主机名。*/ 
               hostName = addr.getHostName(); 
          }catch(Exception ex){ 
              hostName = ""; 
          } 
           
          return hostName; 
     } 
      
     /** 
      * 获得本地所有的IP地址 
      * @return 
      */ 
     public static String[] getAllLocalHostIP() { 
           
         String[] ret = null; 
          try { 
               /**获得主机名*/ 
               String hostName = getLocalHostName(); 
               if(hostName.length()>0) { 
                   /**在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。*/ 
                    InetAddress[] addrs = InetAddress.getAllByName(hostName); 
                    if(addrs.length>0) { 
                         ret = new String[addrs.length]; 
                         for(int i=0 ; i< addrs.length ; i++) { 
                             /**.getHostAddress()   返回 IP 地址字符串(以文本表现形式)。*/ 
                             ret[i] = addrs[i].getHostAddress(); 
                         } 
                    } 
               } 
                
          }catch(Exception ex) { 
              ret = null; 
          } 
           
          return ret; 
     } 
 
     public static void main(String[] args) { 
        System.out.println("本机IP:" + getLocalHostIP()); 
        System.out.println("本地主机名字为:" + getLocalHostName()); 
         
        String[] localIP = getAllLocalHostIP(); 
        for (int i = 0; i < localIP.length; i++) { 
            System.out.println(localIP[i]); 
        } 
        
        InetAddress baidu = InetAddress.getByName("www.baidu.com");
        System.out.println("baidu : " + baidu);
        System.out.println("baidu IP: " + baidu.getHostAddress());
        System.out.println("baidu HostName: " + baidu.getHostName());
    } 
      
}

执行结果我就不贴出来了!希望对您有所帮助。