java IP 주소와 10진수 상호 변환 실현
classip
{
privatestaticlongiptolong(stringstrip)
// 127.0.0.1 ip 10 ,
{
intj=0;
inti=0;
long[]ip=newlong[4];
intposition1=strip.indexof(".");
intposition2=strip.indexof(".",position1+1);
intposition3=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
}
privatestaticstringlongtoip(longlongip)
// 10 127.0.0.1 ip , ping3396362403l
{
stringbuffersb=newstringbuffer("");
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(".");
returnsb.tostring();
}
publicstaticvoidmain(string[]args)
{
system.out.println("ip :rn");
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));
}
}
2, 정수를 IP 주소로 바꾸는 원리: 이 정수를 32비트 이진수로 변환한다.왼쪽에서 오른쪽으로 8자리씩 분할하여 4단 8자리의 2진수를 얻어 이 2진수를 정수로 변환한 다음에 덧붙인다.바로 이 IP 주소입니다. 예를 들어 167773121, 2진법 표시 형식은 다음과 같습니다. 000010000000001111000001은 4단으로 분할됩니다. 00001000010001111000001은 각각 정수로 전환된 후에 덧붙입니다.10.0.3.193을 얻었다.코드는 아래와 같다
publicclassIp{
publicstaticvoidmain(String[]args){
System.out.print(ip2int("10.0.3.193"));
}
publicstaticlongip2int(Stringip){
String[]items=ip.split(".");
returnLong.valueOf(items[0])<<24
|Long.valueOf(items[1])<<16
|Long.valueOf(items[2])<<8
|Long.valueOf(items[3]);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java IP 주소와 10진수 상호 변환 실현먼저 실례 코드를 보면 다음과 같다.운행 결과: IP 주소의 각종 표현 형식: 32비트 2진법 형식: 110010101011000011 10진법 형식: 3396362403 일반 형식: 202.112.96.163.출력...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.