WEB开发网
开发学院WEB开发Jsp java中实现IP地址的各种表现形式之间的转换 阅读

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

 2008-01-05 18:47:42 来源:WEB开发网   
核心提示:/**@描述:java中实现ip地址的各种表现形式之间的转换@作者:慈勤强@Email : cQQ1978@Gmail.com http://blog.csdn.net/cqq*/class IP { PRivate static long ipToLong(String strIP) //将127.0.0.1 形式的




/**
@描述: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地址的各种表现形式:\r\n");
     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地址的各种表现形式:


Tags:java 实现 IP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接