10 微秒級別性能! c# 開發的離線ip地址庫

10 微秒級別性能! c# 開發的離線ip地址庫

ip2region v2.0 - 是一個離線ip地址定位庫和ip定位數據管理框架,10微秒級別的查詢效率,提供了眾多主流程式語言的 xdb 數據生成和查詢客戶端實現。

最后更新 2023/7/7 上午1:08
工具箱
预计阅读 3 分钟
分类
.NET
标签
.NET C#

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# 中使用?

  1. 安裝 nuget 包 ip2region.net。
Install-Package IP2Region.Net
  1. 使用 api 查詢, 非常簡單!
using IP2Region.Net.XDB;

Searcher searcher = new Searcher();
searcher.Search("IP地址");

依賴注入

services.AddSingleton<ISearcher,Searcher>();

性能

項目地址

https://github.com/lionsoul2014/ip2region

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/2/7

aot使用經驗總結

從項目創建伊始,就應養成良好的習慣,即只要添加了新功能或使用了較新的語法,就及時進行 aot 發布測試。

继续阅读