
ip2region 是什麼?
ip2region v2.0 - 是一個離線 ip 地址定位庫和 ip 定位數據管理框架,10 微秒級別的查詢效率,提供了眾多主流程式語言的 xdb 數據生成和查詢客戶端實現。
應用場景
ip2region 廣泛應用在各種需要進行 ip 地址定位的場景,比如,可以用於檢測和阻止來自某些地區或國家的 ip 地址的攻擊行為,可以根據用戶的 ip 地址定位到具體的地理位置。可以根據 ip 地址的地理位置信息進行數據分析和統計,比如統計某個地區的用戶量等。
功能特性
1、標準化的數據格式
每個 ip 數據段的 region 信息都固定了格式:國家|區域|省份|城市|isp,只有中國的數據絕大部分精確到了城市,其他國家部分數據只能定位到國家,後前的選項全部是 0。
2、數據去重和壓縮
xdb 格式生成程式會自動去重和壓縮部分數據,默認的全部 ip 數據,生成的 ip2region.xdb 資料庫是 11mib,隨著數據的詳細度增加資料庫的大小也慢慢增大。
3、極速查詢響應
即使是完全基於 xdb 文件的查詢,單次查詢響應時間在十微秒級別,可通過如下兩種方式開啟內存加速查詢:
vindex 索引緩存 :使用固定的 512kib 的內存空間緩存 vector index 數據,減少一次 io 磁碟操作,保持平均查詢效率穩定在 10-20 微秒之間。xdb 整個文件緩存:將整個 xdb 文件全部加載到內存,內存占用等同於 xdb 文件大小,無磁碟 io 操作,保持微秒級別的查詢效率。
4、ip 數據管理框架
v2.0 格式的 xdb 支持億級別的 ip 數據段行數,region 信息也可以完全自定義,例如:你可以在 region 中追加特定業務需求的數據,例如:gps 信息/國際統一地域信息編碼/郵編等。也就是你完全可以使用 ip2region 來管理你自己的 ip 定位數據。
如何在 c# 中使用?
- 安裝 nuget 包 ip2region.net。
Install-Package IP2Region.Net
- 使用 api 查詢, 非常簡單!
using IP2Region.Net.XDB;
Searcher searcher = new Searcher();
searcher.Search("IP地址");
依賴注入
services.AddSingleton<ISearcher,Searcher>();
性能
