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

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

/**

@描述: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地址的各种表现形式:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航