2013-09-04 4 views
5

IP 기반의 대략적인 위치 정보를 제공하는 많은 소프트웨어가 있습니다. 필자는 IP가 블록 단위로 특정 위치에 할당 되었기 때문에 이것이 가능하다는 것을 읽었으며 인터넷 번호 용 미국 레지스트리와 같은 조직에서는 배포 위치에 대한 정보를 관리합니다. Geolocation 소프트웨어는 테이블을 쿼리합니다.주어진 위치에 IP를 생성 할 수있는 서비스 나 절차가 있습니까?

나는 다른 방법으로 가고있다. 위치 (우편 번호 또는 DMA 코드를 통해)를 제공하고 해당 위치에있는 샘플 IP 주소를 생성하는 방법이 있는지 알고 싶습니다. 내 온라인 검색은 효과가없는 것으로 입증되었습니다.이 작업을 수행하는 온라인 서비스가 있습니까? 아니면이 위치 정보가 주어진 IP를 렌더링하기 위해 해체 될 수있는 프로세스로 완료된 IP를 배포하는 방법입니까?

+0

많은 그래픽 정보를 원하지 않는다면 XKCD의 [인터넷지도] (http://xkcd.com/195/)를 사용할 수 있습니다. 주어진 위치에서 임의의 IP 주소를 쉽게 제공 할 수있는 프로그램을 만들 수 있습니다. – Renan

+0

무료로이 작업을 수행하려고합니까? (나는 내 ​​서비스를 팔려고하지 않는다!) – user2588667

답변

3

나는 해결책이 있습니다. 먼저, 고급 단계를 강조하겠습니다.


(1) IP 주소 블록을 우편 번호로 연결하는 무료 데이터를 다운로드하십시오. (당신이 원하는 것의 반대).

(2) 간단 우편 번호에 대한 해당 데이터베이스를 조회하고 다운로드 한 테이블에서 해당 우편 번호에 대한 "유효 범위"의 모든 IP를 선택하십시오.

그래서 예를 들어, 당신은, 시카고, IL 60657에 대해 유효한 IP 주소를 원하는 당신은 60657에 대한 IP의의 유효 범위를보고 하나를 선택할 것!

지금 세부에 이르기까지 ... 바닥에 http://dev.maxmind.com/geoip/legacy/geolite/ 스크롤로 이동 Geolite 도시를 다운로드합니다. 여기에는 일종의 관계형 데이터베이스로 가져 오기를 원하는 두 가지 CSV가 포함되어 있습니다. 하나의 테이블은 위치 ID를 우편 번호에 매핑합니다. 두 번째 테이블은 위치 ID를 유효한 IP 범위와 일치시킵니다.

유효한 IP 우편 번호 60657을 찾으려면 60657의 위치 ID를 찾은 다음 두 번째 테이블을 사용하여 해당 위치 ID에 유효한 IP 범위를 찾으십시오.

IP 주소 범위를 처리 할 때마다 nubmers는 103.412.411.22 (가짜 예제) 대신 I.E 16777471로 소수점 이하 자릿수를 사용합니다. 10 진수 표기법과 IP 주소 표기법 사이에서 변환하려면이 사이트의 수식을 사용하십시오. https://sites.google.com/site/followyourheart10/technical-section/ip-address-notations-conversion.

행운을 빈다.

+0

고맙습니다. GeoLiteCity-Blocks를 사용하면 startIpNum과 endIpNum이라는 두 행을 볼 수 있습니다. IP 주소로 그 조합을 변환하는 방법을 이해할 수 없습니다. IP의 구조를 기반으로, 처음 세 숫자와 마지막 세 숫자 일 것입니다. 하지만 위치 쿼리에서 어떻게 사용합니까? 자세한 답변을 주셔서 감사합니다. – 1252748

+0

질문을 PHP로 태그 지정 했으므로 PHP를 사용하고 있다고 가정합니다. PHP는 lovely하게 이렇게하는 함수를 내장하고 있습니다.'long2ip()', http://php.net/manual/en/function.long2ip.php. MySQL을 사용한다면, 'INET_NTOA' 함수를 사용할 수 있습니다. http://dev.mysql.com/doc/refman/5.1/en/miscellaneous-functions.html#function_inet-ntoa – user2588667

+0

훌륭한 전략. 매력 +100처럼 일했습니다 :) – 1252748