java 实现获得本机地址和IP

来源:互联网 发布:json数据里的函数 编辑:程序博客网 时间:2024/06/05 05:57
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://hanchaohan.blog.51cto.com/2996417/793377
  1. package com.hanchao.test; 
  2.  
  3. import java.net.InetAddress; 
  4.  
  5. /** 
  6.  * 获取本机IP的程序 
  7.  * @author hanchao 
  8.  */ 
  9. public class GetLocalIp { 
  10.      
  11.     /** 
  12.      * 知识的补充 
  13.      *  
  14.      * InetAddress 继承自 java.lang.Object类 
  15.      * 它有两个子类:Inet4Address 和 Inet6Address 
  16.      * 此类表示互联网协议 (IP) 地址。  
  17.      *  
  18.      * IP 地址是 IP 使用的 32 位或 128 位无符号数字, 
  19.      * 它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。 
  20.      *  
  21.      * ************************************************ 
  22.      * 主机名就是计算机的名字(计算机名),网上邻居就是根据主机名来识别的。 
  23.      * 这个名字可以随时更改,从我的电脑属性的计算机名就可更改。 
  24.      *  用户登陆时候用的是操作系统的个人用户帐号,这个也可以更改, 
  25.      *  从控制面板的用户界面里改就可以了。这个用户名和计算机名无关。 
  26.      */ 
  27.      
  28.     /** 
  29.      * 获取本机的IP 
  30.      * @return Ip地址 
  31.      */ 
  32.      public static String getLocalHostIP() { 
  33.           String ip; 
  34.           try { 
  35.                /**返回本地主机。*/ 
  36.                InetAddress addr = InetAddress.getLocalHost(); 
  37.                /**返回 IP 地址字符串(以文本表现形式)*/ 
  38.                ip = addr.getHostAddress();  
  39.           } catch(Exception ex) { 
  40.               ip = ""
  41.           } 
  42.            
  43.           return ip; 
  44.      } 
  45.       
  46.      /** 
  47.       * 或者主机名: 
  48.       * @return 
  49.       */ 
  50.      public static String getLocalHostName() { 
  51.           String hostName; 
  52.           try { 
  53.                /**返回本地主机。*/ 
  54.                InetAddress addr = InetAddress.getLocalHost(); 
  55.                /**获取此 IP 地址的主机名。*/ 
  56.                hostName = addr.getHostName(); 
  57.           }catch(Exception ex){ 
  58.               hostName = ""
  59.           } 
  60.            
  61.           return hostName; 
  62.      } 
  63.       
  64.      /** 
  65.       * 获得本地所有的IP地址 
  66.       * @return 
  67.       */ 
  68.      public static String[] getAllLocalHostIP() { 
  69.            
  70.          String[] ret = null
  71.           try { 
  72.                /**获得主机名*/ 
  73.                String hostName = getLocalHostName(); 
  74.                if(hostName.length()>0) { 
  75.                    /**在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。*/ 
  76.                     InetAddress[] addrs = InetAddress.getAllByName(hostName); 
  77.                     if(addrs.length>0) { 
  78.                          ret = new String[addrs.length]; 
  79.                          for(int i=0 ; i< addrs.length ; i++) { 
  80.                              /**.getHostAddress()   返回 IP 地址字符串(以文本表现形式)。*/ 
  81.                              ret[i] = addrs[i].getHostAddress(); 
  82.                          } 
  83.                     } 
  84.                } 
  85.                 
  86.           }catch(Exception ex) { 
  87.               ret = null
  88.           } 
  89.            
  90.           return ret; 
  91.      } 
  92.  
  93.      public static void main(String[] args) { 
  94.         System.out.println("本机IP:" + getLocalHostIP()); 
  95.         System.out.println("本地主机名字为:" + getLocalHostName()); 
  96.          
  97.         String[] localIP = getAllLocalHostIP(); 
  98.         for (int i = 0; i < localIP.length; i++) { 
  99.             System.out.println(localIP[i]); 
  100.         } 
  101.     } 
  102.       

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

0 0
原创粉丝点击