服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java中实现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地址的各种表现形式:/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地址的各种表现形式:

32位二进制形式:11001010011100000110000010100011
十进制形式:3396362403
普通形式:202.112.96.163.

输出完成 (耗时 1 秒) - 正常终止

扫描关注微信公众号