ip2region - 오프라인 IP 주소 위치 라이브러리 및 IP 위치 데이터 관리 프레임워크로, 10마이크로초의 쿼리 효율성을 가지며 많은 주류 프로그래밍 언어에 대한 xdb
데이터 생성 및 쿼리 클라이언트 구현을 제공합니다.
xdb
수억 개의 IP 데이터 세그먼트 행을 지원합니다. 기본 지역 정보는国家|区域|省份|城市|ISP
같은 고정 형식을 갖습니다. 지역 정보는 완벽한 사용자 정의를 지원합니다. 예를 들어 GPS 정보/국제 통합 지역 정보 코드/우편 번호 등 지역의 특정 비즈니스 요구 사항에 맞는 데이터를 추가할 수 있습니다. 즉, ip2region을 사용하여 자신의 IP 위치 데이터를 관리할 수 있습니다.
xdb
형식 생성 프로그램은 기본적으로 모든 IP 데이터를 자동으로 제거하고 압축합니다. 생성된 ip2region.xdb 데이터베이스는 데이터의 세부 사항이 증가함에 따라 데이터베이스 크기가 점차 증가합니다.
전적으로 xdb
파일을 기반으로 하는 쿼리의 경우에도 단일 쿼리의 응답 시간은 10마이크로초 수준입니다. 메모리 가속 쿼리는 다음 두 가지 방법으로 켤 수 있습니다.
vIndex
인덱스 캐시: 고정된 512KiB
메모리 공간을 사용하여 벡터 인덱스 데이터를 캐시하고, 하나의 IO 디스크 작업을 줄이고, 평균 쿼리 효율성을 10~20마이크로초 사이에서 안정적으로 유지합니다.xdb
전체 파일 캐시: 전체 xdb
파일을 메모리에 로드합니다. 메모리 사용량은 xdb
파일의 크기와 동일하며 디스크 IO 작업이 없으며 마이크로초 수준의 쿼리 효율성이 유지됩니다.xdb
데이터 쿼리 API 소개, 사용법 문서 및 테스트 절차는 해당 searcher
쿼리 클라이언트의 ReadMe 소개를 참조하세요. 모든 쿼리 바인딩의 구현은 다음과 같습니다.
좋아요? | 상태 | 프로그래밍 언어 | 설명하다 | 기부자 |
---|---|---|---|---|
✅ | 완전한 | 골랑 | golang xdb 쿼리 클라이언트 구현 | 사자 |
✅ | 완전한 | PHP | PHP xdb 쿼리 클라이언트 구현 | 사자 |
✅ | 완전한 | 자바 | Java xdb 쿼리 클라이언트 구현 | 사자 |
✅ | 완전한 | 루아 | 순수 Lua xdb 쿼리 클라이언트 구현 | 사자 |
✅ | 완전한 | 기음 | ANSC c xdb 쿼리 클라이언트 구현 | 사자 |
✅ | 완전한 | lua_c | Lua C 확장 xdb 쿼리 클라이언트 구현 | 사자 |
✅ | 완전한 | 녹 | Rust xdb 쿼리 클라이언트 구현 | 공정양 |
✅ | 완전한 | 파이썬 | Python XDB 쿼리 클라이언트 구현 | 대단해 화와 |
✅ | 완전한 | nodejs | nodejs xdb 쿼리 클라이언트 구현 | 우젠핑 |
✅ | 완전한 | csharp | csharp xdb 쿼리 클라이언트 구현 | 앨런 리 |
✅ | 완전한 | 얼랭 | Erlang xdb 쿼리 클라이언트 구현 | 레이화996 |
시작 예정 | php_ext | PHP C 확장 xdb 쿼리 클라이언트 구현 | 미정 | |
✅ | 완전한 | nginx | nginx는 xdb 쿼리 클라이언트 구현을 확장합니다. | 우젠핑 |
✅ | 완전한 | C++ | C++ xdb 쿼리 클라이언트 구현 | 류윤빈 |
다음 도구 체인 구현은 타사 저장소를 통해 커뮤니티 개발자가 기여합니다.
좋아요? | 상태 | 프로그래밍 언어 | 설명하다 | 기부자 |
---|---|---|---|---|
✅ | 완전한 | 루비-ip2지역 | Ruby xdb 쿼리 클라이언트 구현 | 지청1014 |
✅ | 완전한 | Ip2region도구 | ip2region 데이터 변환 도구 | 광석 |
xdb
데이터 생성 API 소개, 사용 문서 및 테스트 절차는 아래 maker
생성 프로그램의 ReadMe 문서를 참조하세요.
좋아요? | 상태 | 프로그래밍 언어 | 설명하다 | 기부자 |
---|---|---|---|---|
✅ | 완전한 | 골랑 | Golang xdb 생성 프로그램 구현 | 사자 |
✅ | 완전한 | 자바 | Java xdb 생성 프로그램 구현 | 사자 |
시작 예정 | 기음 | ANSC c xdb 생성 프로그램 구현 | 사자 | |
✅ | 완전한 | 파이썬 | Python xdb 생성 프로그램 구현 | 레오린49 |
✅ | 완전한 | csharp | csharp xdb 생성 프로그램 구현 | 앨런 리 |
✅ | 완전한 | 녹 | Rust xdb 생성기 구현 | 케빈왕 |
✅ | 완전한 | C++ | C++ xdb 생성 프로그램 구현 | 류윤빈 |
xdb
데이터 업데이트 ip2region은 IP 데이터 저장 및 빠른 쿼리의 설계 및 구현을 연구하는 것을 목표로 하며 원본 IP 데이터를 지원하지 않으며 상용 버전도 없습니다. 이 프로젝트와 함께 제공되는 ./data/ip.merge.txt
원본 데이터는 오랫동안 업데이트되지 않았으며 다시 업데이트되지 않습니다. 높은 데이터 정확성과 업데이트 빈도가 필요한 사용 시나리오의 경우 세 번째 구매를 권장합니다. -파티 상업 데이터를 사용할 수 있습니다. 데이터를 직접 업데이트하는 방법에는 여러 가지가 있습니다.
ip2region에서 제공하는 편집 도구를 사용하여 ip2region과 함께 제공되는 ./data/ip.merge.txt
의 원래 IP 데이터를 기반으로 수정할 수 있습니다. 현재 데이터를 소스하는 방법에는 여러 가지가 있습니다.
[数据源补充]
태그가 붙은 문제 원본 IP 데이터 편집 도구를 사용하는 방법은 아래 maker
생성 프로그램의 ReadMe 문서를 참조하세요.
좋아요? | 상태 | 프로그래밍 언어 | 설명하다 | 기부자 |
---|---|---|---|---|
✅ | 완전한 | 골랑 | golang 원본 IP 데이터 편집기 | 사자 |
시작 예정 | 자바 | 자바 원시 IP 데이터 편집기 | 사자 | |
✅ | 완전한 | C++ | C++ 원시 IP 데이터 편집기 | 류윤빈 |
자체 API 또는 데이터 소스를 통해 데이터를 업데이트하려면 다음 영상에서 공유하는基于检测算法
업데이트 알고리즘을 참조하여 업데이트 프로그램을 직접 작성할 수 있습니다.
xdb의 캐시된 쿼리 전체는 동시성 이 안전하지 않습니다. 파일 기반 쿼리는 동시성이 높지 않습니다 . 동시성이 큰 경우에는 다양한 프로세스/스레드/코루틴을 안전하게 사용해야 합니다. 쿼리 방법은 열린 파일이 너무 많아 오류가 발생할 수 있습니다. 커널에서 허용하는 최대 열린 파일 수를 수정하거나(fs.file-max=더 높은 값) 안전한 동시 사용을 위해 전체 xdb를 메모리에 로드하십시오.
먼저 WeChat 공개 계정 lionsoul-org(Lion's Soul)을 팔로우하세요.