/**
@描述:java中實現(xiàn)ip地址的各種表現(xiàn)形式之間的轉(zhuǎn)換
@作者:慈勤強
@Email : cQQ1978@Gmail.com http://blog.csdn.net/cqq
*/
class IP
{
PRivate static long ipToLong(String strIP)
//將127.0.0.1 形式的IP地址轉(zhuǎn)換成10進制整數(shù),這里沒有進行任何錯誤處理
{
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進制整數(shù)形式轉(zhuǎn)換成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地址的各種表現(xiàn)形式:/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));
}
}
運行結(jié)果:
----------java ----------
IP地址的各種表現(xiàn)形式:
新聞熱點
疑難解答