ip2region - adalah perpustakaan lokasi alamat IP offline dan kerangka manajemen data lokasi IP. Ia memiliki efisiensi kueri 10 mikrodetik dan menyediakan pembuatan data xdb
dan implementasi klien kueri untuk banyak bahasa pemrograman utama.
xdb
mendukung ratusan juta baris segmen data IP. Informasi wilayah default memiliki format tetap:国家|区域|省份|城市|ISP
. Informasi wilayah mendukung penyesuaian lengkap. Misalnya, Anda dapat menambahkan data dengan kebutuhan bisnis spesifik di wilayah tersebut, seperti informasi GPS/Kode Informasi Regional Terpadu Internasional/Kode Pos, dll. Artinya, Anda dapat menggunakan ip2region untuk mengelola data lokasi IP Anda sendiri.
Program pembuatan format xdb
akan secara otomatis menghapus duplikat dan mengompresi beberapa data. Secara default, semua data IP dihasilkan. Basis data ip2region.xdb adalah 11MiB.
Bahkan untuk kueri yang sepenuhnya didasarkan pada file xdb
, waktu respons untuk satu kueri berada pada tingkat sepuluh mikrodetik. Kueri akselerasi memori dapat diaktifkan dengan dua cara berikut:
vIndex
indeks cache: Gunakan ruang memori tetap 512KiB
untuk menyimpan data indeks vektor dalam cache, mengurangi satu operasi disk IO, dan menjaga efisiensi kueri rata-rata tetap stabil antara 10-20 mikrodetik.xdb
seluruh file cache: Memuat seluruh file xdb
ke dalam memori. Penggunaan memori sama dengan ukuran file xdb
. Tidak ada operasi IO disk dan efisiensi kueri tingkat mikrodetik dipertahankan.xdb
Untuk pengenalan API, dokumentasi penggunaan, dan prosedur pengujian, silakan lihat pengenalan ReadMe di bawah klien kueri searcher
yang sesuai. Implementasi semua pengikatan kueri adalah sebagai berikut:
Oke? | negara | bahasa pemrograman | menggambarkan | Penyumbang |
---|---|---|---|---|
✅ | Selesai | golang | implementasi klien kueri golang xdb | Singa |
✅ | Selesai | php | Implementasi klien kueri PHP xdb | Singa |
✅ | Selesai | Jawa | Implementasi klien kueri Java xdb | Singa |
✅ | Selesai | lua | Implementasi klien kueri Lua xdb murni | Singa |
✅ | Selesai | C | Implementasi klien kueri ANSC c xdb | Singa |
✅ | Selesai | lua_c | Lua c memperluas implementasi klien kueri xdb | Singa |
✅ | Selesai | karat | implementasi klien kueri karat xdb | gongzhengyang |
✅ | Selesai | ular piton | implementasi klien kueri python xdb | Huahua yang luar biasa |
✅ | Selesai | nodejs | implementasi klien kueri nodejs xdb | Wu Jianping |
✅ | Selesai | tajam | implementasi klien kueri csharp xdb | Alan Lee |
✅ | Selesai | erlang | Implementasi klien kueri Erlang xdb | leihua996 |
Untuk memulai | php_ext | Implementasi klien kueri xdb ekstensi PHP c | Untuk ditentukan | |
✅ | Selesai | nginx | nginx memperluas implementasi klien kueri xdb | Wu Jianping |
✅ | Selesai | C++ | Implementasi klien kueri C++ xdb | Yunbin Liu |
Implementasi toolchain berikut disumbangkan oleh pengembang komunitas melalui repositori pihak ketiga:
Oke? | negara | bahasa pemrograman | menggambarkan | Penyumbang |
---|---|---|---|---|
✅ | Selesai | wilayah ruby-ip2 | implementasi klien kueri ruby xdb | jicheng1014 |
✅ | Selesai | Alat Wilayah Ip2 | alat konversi data wilayah ip2 | batu bijih |
xdb
Untuk pengenalan API, dokumentasi penggunaan, dan prosedur pengujian, silakan merujuk ke dokumen ReadMe pada program pembuatan maker
di bawah:
Oke? | negara | bahasa pemrograman | menggambarkan | Penyumbang |
---|---|---|---|---|
✅ | Selesai | golang | Implementasi program pembuatan Golang xdb | Singa |
✅ | Selesai | Jawa | Implementasi program pembuatan xdb Java | Singa |
Untuk memulai | C | Implementasi program pembangkitan ANSC c xdb | Singa | |
✅ | Selesai | ular piton | Implementasi program generasi Python xdb | leolin49 |
✅ | Selesai | tajam | implementasi program generasi csharp xdb | Alan Lee |
✅ | Selesai | karat | implementasi generator karat xdb | Kevin Wang |
✅ | Selesai | C++ | Implementasi program pembuatan C++ xdb | Yunbin Liu |
xdb
ip2region bertujuan untuk mempelajari desain dan implementasi penyimpanan data IP dan kueri cepat . Ini tidak mendapat dukungan data IP asli, dan tidak akan ada versi komersial. Data asli ./data/ip.merge.txt
yang disertakan dengan proyek ini sudah lama tidak diperbarui dan tidak akan diperbarui lagi. Untuk skenario penggunaan yang memerlukan akurasi data tinggi dan frekuensi pembaruan, disarankan untuk membeli yang ketiga -data komersial pihak. Anda dapat menggunakan Ada beberapa cara untuk mencoba memperbarui data sendiri:
Anda dapat menggunakan alat pengeditan yang disediakan oleh ip2region untuk memodifikasinya berdasarkan data IP asli ./data/ip.merge.txt
yang disertakan dengan ip2region.
[数据源补充]
di ip2region Github/Gitee Untuk cara menggunakan alat pengeditan data IP asli, silakan merujuk ke dokumen ReadMe di bawah program pembuatan maker
di bawah ini:
Oke? | negara | bahasa pemrograman | menggambarkan | Penyumbang |
---|---|---|---|---|
✅ | Selesai | golang | editor data IP asli golang | Singa |
Untuk memulai | Jawa | editor data IP mentah java | Singa | |
✅ | Selesai | C++ | Editor Data IP Mentah C++ | Yunbin Liu |
Jika Anda ingin memperbarui data melalui API atau sumber data Anda sendiri, Anda dapat merujuk ke algoritma pembaruan基于检测算法
yang dibagikan dalam video berikut untuk menulis sendiri program pembaruan:
Seluruh kueri xdb yang di-cache aman untuk konkurensi. Kueri berbasis file tidak aman untuk konkurensi. Proses/utas/coroutine yang berbeda perlu digunakan secara aman dengan membuat objek kueri yang berbeda Metode kueri dapat menyebabkan kesalahan dengan terlalu banyak file terbuka. Harap ubah jumlah maksimum file terbuka yang diizinkan oleh kernel (fs.file-max=nilai lebih tinggi), atau muat seluruh xdb ke dalam memori untuk penggunaan bersamaan yang aman.
Silakan ikuti akun publik WeChat lionsoul-org (Lion’s Soul) terlebih dahulu