괜 찮 은 오프라인 IP 주소 포 지 셔 닝 라 이브 러 리,99.9%정확도

5946 단어 공구.
Ip2region 특성ip2region 빠 른 테스트
ip2region 설치ip2region 동시 사용ip2region.db 의 생 성
 
ip2region-정확도 99.9%의 오프라인 IP 주소 포 지 셔 닝 라 이브 러 리,0.0x 밀리초 급 조회,ip2region.db 데이터 베 이 스 는 수 MB 만 있 고 자바,phop,c,python,nodejs,golang,c\#등 조회 바 인 딩 과 Binary,B 트 리,메모리 세 가지 조회 알고리즘 을 제공 합 니 다.
 
Ip2region 특성
 
99.9%정확도
 
데 이 터 는 일부 유명 ip 에서 지명 조회 공급 업 체 의 데 이 터 를 취 합 했 는데 이런 것들 은 그들의 공식 적 인 정확도 이 고 테스트 를 통 해 전형 적 인 순수한 IP 포 지 셔 닝 보다 정확 하 다.
 
ip2region 의 데 이 터 는 다음 서비스 업 체 의 개방 API 또는 데이터(업그레이드 프로그램 1 초 에 요청 횟수 2~4 회):01,>80%,타 오 바 오 IP 주소 라 이브 러 리 에서 취 합 됩 니 다.http://ip.taobao.com/ 02, ≈10%, GeoIP, https://geoip.com/ 03,≈2%,순수 IP 라 이브 러 리, http://www.cz88.net/ **비고:**상기 열 린 API 나 데이터 가 열 린 데 이 터 를 주지 않 으 면 ip2region 은 데이터 업데이트 서 비 스 를 중단 합 니 다.
 
표준 화 된 데이터 형식
 
모든 ip 데이터 세그먼트 에 형식 이 고정 되 어 있 습 니 다.
 
_  Id|  |  |  |  |ISP_

 
중국의 데이터 만 도시 에 정확 하고 다른 나라 의 일부 데 이 터 는 국가 에 만 위치 할 수 있 습 니 다.뒤의 옵션 은 모두 0 입 니 다.이미 당신 이 찾 을 수 있 는 크 고 작은 국가(앞의 도시 Id,개인 프로젝트 수 요 를 무시 하 십시오)를 모두 포함 하고 있 습 니 다.
 
부피 가 작다
 
모든 IP 를 포함 하여 생 성 된 데이터베이스 파일 ip2region.db 는 몇 MB 에 불과 하고 가장 작은 버 전 은 1.5MB 에 불과 하 며 데이터 의 상세 도가 증가 함 에 따라 데이터베이스 의 크기 도 점점 커지 고 있 으 며 아직 8MB 를 넘 지 않 았 다.
 
조회 속도 가 빠르다
 
모든 조회 클 라 이언 트 의 단일 조회 가 0.x 밀리초 단계 에 있 고 세 가지 조회 알고리즘 이 내장 되 어 있 습 니 다.
 
4.567917.memory 알고리즘:전체 데이터 베 이 스 는 메모리 에 불 러 옵 니 다.한 번 의 조 회 는 0.1 x 밀리초 안에 있 고 C 언어의 클 라 이언 트 는 한 번 에 0.00x 밀리초 단계 에 있 습 니 다
4.567917.binary 알고리즘:2 분 검색 을 바탕 으로 ip2region.db 파일 을 기반 으로 메모리 에 불 러 올 필요 가 없습니다.1 차 검색 은 0.x 밀리초 단계 입 니 다
4.567917.b-tree 알고리즘:btree 알고리즘 을 기반 으로 ip2region.db 파일 을 기반 으로 메모리 에 불 러 올 필요 가 없습니다.단 어 는 0.x 밀리초 단계 로 binary 알고리즘 보다 빠 릅 니 다
 
모든 클 라 이언 트 b-tree 는 binary 알고리즘 보다 빠 릅 니 다.물론 memory 알고리즘 이 가장 빠 릅 니 다!
 
다 중 조회 클 라 이언 트 지원
 
이미 통 합 된 클 라 이언 트 는 자바,C\#,php,c,python,nodejs,php 확장(php 5 와 php 7),golang,rust,lua,luac, nginx。
 
binding
묘사 하 다.
개발 상태
binary 조회 시간 소모
b-tree 조회 시간 소모
메모리 조회 시간 소모
c
ANSC c binding
완료 됨
0.0x 밀리초
0.0x 밀리초
0.00x 밀리초
c#
c# binding
완료 됨
밀리초
밀리초
0.1 x 밀리초
golang
golang binding
완료 됨
밀리초
밀리초
0.1 x 밀리초
java
java binding
완료 됨
밀리초
밀리초
0.1 x 밀리초
lua
lua 구현 binding
완료 됨
밀리초
밀리초
밀리초
lua_c
lua 의 c 확장
완료 됨
0.0x 밀리초
0.0x 밀리초
0.00x 밀리초
nginx
nginx 의 c 확장
완료 됨
0.0x 밀리초
0.0x 밀리초
0.00x 밀리초
nodejs
nodejs
완료 됨
밀리초
밀리초
0.1 x 밀리초
php
php 구현 binding
완료 됨
밀리초
0.1 x 밀리초
0.1 x 밀리초
php5_ext
php 5 의 c 확장
완료 됨
0.0x 밀리초
0.0x 밀리초
0.00x 밀리초
php7_ext
php 7 의 c 확장
완료 됨
0.0 밀리초
0.0x 밀리초
0.00x 밀리초
python
python bindng
완료 됨
밀리초
밀리초
밀리초
rust
rust binding
완료 됨
밀리초
밀리초
밀리초
 
 
ip2region 빠 른 테스트
 
모든 binding 의 README 설명 을 참고 하여 cli 테스트 프로그램 을 실행 하 십시오.예 를 들 어 C 언어의 demo 는 다음 과 같이 실 행 됩 니 다.
 
cd binding/c/
gcc -g -O2 testSearcher.c ip2region.c
./a.out ../../data/ip2region.db

 
다음 cli 인터페이스 를 볼 수 있 습 니 다:
 
initializing  B-tree ...
+----------------------------------+
| ip2region test script            |
| Author: [email protected]  |
| Type 'quit' to exit program      |
+----------------------------------+
p2region>> 101.105.35.57
2163|  |  |   |   |    in 0.02295 millseconds

 
IP 주 소 를 입력 하여 테스트 를 시작 합 니 다.첫 번 째 는 약간 느 릴 수 있 습 니 다.명령 을 실행 한 후에 binary,memory 에 접속 하여 다른 알고리즘 을 시도 합 니 다.b-tree 알고리즘 을 사용 하 는 것 을 권장 합 니 다.속도 와 동시 다발 수 요 는 memory 알고리즘 을 사용 할 수 있 습 니 다.구체 적 인 통합 은 서로 다른 bining 에서 의 테스트 소스 코드 를 참고 하 십시오.
 
ip2region 설치
 
구체 적 으로 각 binding 아래 의 README 문서 와 테스트 demo 를 참고 하 십시오.다음은 사용 가능 한 빠 른 설치 방법 입 니 다.
 
maven 창고 주소
 

    org.lionsoul
    ip2region
    1.7.2


 
 
nodejs
 
npm install node-ip2region --save

 
 
nuget 설치
 
Install-Package IP2Region

 
 
php composer
 
#     :https://github.com/zoujingli/ip2region
composer require zoujingli/ip2region

 
 
ip2region 동시 사용
 
  • 모든 binding 의 각 search 인 터 페 이 스 는 스 레 드 가 안전 한 실현 이 아 닙 니 다.서로 다른 스 레 드 는 서로 다른 조회 대상 을 만들어 서 사용 할 수 있 습 니 다.병발 량 이 많은 경우 binary 와 b-tree 알고리즘 은 파일 수가 너무 많은 오 류 를 열 수 있 습 니 다.커 널 의 최대 허용 파일 수(fs.file-max=더 높 은 값)를 수정 하 십시오.혹은 지속 적 인 memory 알고리즘 을 사용 합 니 다

  • 4.567917.memory Search 인 터 페 이 스 는 발표 대상 전에 사전 조 회 를 실시 합 니 다(본질 적 으로 ip2region.db 파일 을 메모리 에 불 러 옵 니 다).다 중 스 레 드 환경 에 안전하게 사용 할 수 있 습 니 다
     
     
    ip2region.db 생 성
     
    1.8 버 전부터 ip2region 은 ip2region.db 생 성 프로그램의 자바 구현 을 시 작 했 습 니 다.ant 컴 파일 지원 을 제공 합 니 다.컴 파일 후 아래 에 언급 된 dbMaker-{version}.jar 를 받 을 수 있 습 니 다.생 성 프로그램 을 연구 하거나 사용자 정의 생 성 설정 을 변경 해 야 하 는 경우${ip2region 을 참고 하 십시오.root}/maker/자바 내 자바 소스 코드 입 니 다.
     
    ip2region 1.2.2 버 전부터 dbMaker-{version}.jar 의 실행 가능 한 jar 파일 을 제출 하여 이 작업 을 수행 합 니 다.
     
    4.567917.자바 환경 을 설치 하도록 확보 합 니 다.
    cd 부터${ip2regionroot}/maker/java,그리고 다음 명령 을 실행 합 니 다 
    java -jar dbMaker-{version}.jar -src        -region   csv   [-dst    ip2region.db     ]
    
    #       :db             ,   ip2region.db    /data/ip.merge.txt     ,            /data/ip.merge.txt    
    #   csv  :          ip2region         ,         city_id,      /data/origin/global_region.csv    
    # ip2region.db     :     ,                ./data/ip2region.db  
    

     
    생 성 된 ip2region.db 파일 을 가 져 와 서 원래 ip2region.db 파일 을 덮어 쓰 면 됩 니 다.
     
    기본 ip2region.db 파일 생 성 명령:

    좋은 웹페이지 즐겨찾기