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 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Hugo와 Github Pages에서 블로그 개설. 신규 투고시의 이미지를 끌어오는 쉘 스크립트를 써 보았다.Hugo와 Github Pages를 사용하여 블로그 열기 신규 투고시의 쉘 스크립트를 생각한다. 나는 신졸 2 년째 (곧, 3 년째) 인프라 엔지니어를 한 후 현재 스크럼 마스터. 그래서, 거기까지 기술적인 지식은 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.