ip 주소 와 숫자 (긴 정수) 사이 의 변환
1676 단어 Blog
사이트 의 고객 출처 를 분석 할 때 고객 의 ip 주소 에 따라 고객 의 국가 위치 나 도시 위 치 를 판단 하도록 요구한다.물론 이 정도 까지 해 야 합 니 다. 자세 한 ip 주소 라 이브 러 리 가 있어 야 합 니 다.
ip 주소 라 이브 러 리 에 서 는 일반적으로 ip 주소 로 전 환 된 숫자 (긴 정수) 를 통 해 국가 나 도 시 를 구분한다.ip 주소 라 이브 러 리 데이터베이스 의 일반 형식 은:
...
startIpLongNumber endIpLongNumber CountryName CountryCode CityName
...
응용 프로그램 에서 고객 의 ip 주소 문자열 을 긴 정수 로 바 꾸 어야 주소 라 이브 러 리 에서 찾 을 수 있 습 니 다.
다음은 ip -> long, long -> ip 의 전환 방법 을 드 립 니 다.
/**
* ip .
* @param ip
* @return
*/
public static long ip2long(String ip) {
String[] ips = ip.split("[.]");
long num = 16777216L*Long.parseLong(ips[0]) + 65536L*Long.parseLong(ips[1]) + 256*Long.parseLong(ips[2]) + Long.parseLong(ips[3]);
return num;
}
/**
* ip .
* @param ipLong
* @return
*/
public static String long2ip(long ipLong) {
//long ipLong = 1037591503;
long mask[] = {0x000000FF,0x0000FF00,0x00FF0000,0xFF000000};
long num = 0;
StringBuffer ipInfo = new StringBuffer();
for(int i=0;i<4;i++){
num = (ipLong & mask[i])>>(i*8);
if(i>0) ipInfo.insert(0,".");
ipInfo.insert(0,Long.toString(num,10));
}
return ipInfo.toString();
}
위의 두 가지 방법 을 통 해 ip 주소 문자열 을 log 숫자 로 편리 하 게 환산 할 수 있 습 니 다.또는 long 숫자 를 ip 주소 문자열 로 복원 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
게시 페이지 마무리index.php index.php body 태그의 내용을 <body> -> <body <?php body_class(); ?>>라는 식으로 재기록함으로써 class가 부여된다. 전후를 비교해 보자. 다음에 다시 쓴...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.