龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

java中实现IP地址的各种表现形式之间的转换

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
/** @描述:Java中实现IP地址的各种表现形式之间的转换 @作者:慈勤强 @Email : cQQ1978@gmail.com http://blog.csdn.net/cqq */ class IP { private static long ipToLong(String strIP) //将127.0.0.1 形式的IP地址转换成

  
  
  
  /**
  @描述:Java中实现IP地址的各种表现形式之间的转换
  @作者:慈勤强
  @Email : cQQ1978@gmail.com http://blog.csdn.net/cqq
  */

  class IP
  {
       private static long ipToLong(String strIP)
       //将127.0.0.1 形式的IP地址转换成10进制整数,这里没有进行任何错误处理
       {
            int j=0;
            int i=0;
            long [] ip=new long[4];
            int position1=strIP.indexOf(".");
            int position2=strIP.indexOf(".",position1+1);
            int position3=strIP.indexOf(".",position2+1);  
            ip[0]=Long.parseLong(strIP.substring(0,position1));
            ip[1]=Long.parseLong(strIP.substring(position1+1,position2));
            ip[2]=Long.parseLong(strIP.substring(position2+1,position3));
            ip[3]=Long.parseLong(strIP.substring(position3+1));
            return (ip[0]<<24)+(ip[1]<<16)+(ip[2]<<8)+ip[3]; //ip1*256*256*256+ip2*256*256+ip3*256+ip4
       }
       private static String longToIP(long longIP)
       //将10进制整数形式转换成127.0.0.1形式的IP地址,在命令提示符下输入ping 3396362403L
       {
            StringBuffer sb=new StringBuffer("");
            sb.append(String.valueOf(longIP>>>24));//直接右移24位
            sb.append(".");
            sb.append(String.valueOf((longIP&0x00FFFFFF)>>>16)); //将高8位置0,然后右移16位
            sb.append(".");
            sb.append(String.valueOf((longIP&0x0000FFFF)>>>8));
            sb.append(".");
            sb.append(String.valueOf(longIP&0x000000FF));
            sb.append(".");
            return sb.toString(); 
       } 
       public static void main(String[] args)
       {
            System.out.println("IP地址的各种表现形式: ");
            System.out.print("32位二进制形式:");
            System.out.println(Long.toBinaryString(3396362403L));
            System.out.print("十进制形式:");
            System.out.println(ipToLong("202.112.96.163"));
            System.out.print("普通形式:");
            System.out.println(longToIP(3396362403L));
       }
  }
  
  运行结果:
  

  
   ----------java ----------
  IP地址的各种表现形式:

  
  

精彩图集

赞助商链接