爱心技术专栏专题

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

摘录:java 来源:java 加入时间:2006年08月19日
摘要:
实现IP地址的各种表现形式之间的转换

*/

class IP
{
private static long ipToLong(String strIP)
//将127.0.0.1 形式的IP地址转换成10进制整数,这里没有进行任何错误处理
{
int j=0;
int i=0;


转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info15/a_8392ab543afd2e53.htm

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

站点:爱心种子小博士 关键字:实现IP地址的各种表现形式之间的转换

   
实现IP地址的各种表现形式之间的转换
*/

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 秒) - 正常终止




客户服务中心信箱:[email protected] [email protected] 网站地图

声明

合作伙伴: