10マイクロ秒クラスの性能!C#で開発されたオフラインIPアドレスライブラリ

10マイクロ秒クラスの性能!C#で開発されたオフラインIPアドレスライブラリ

ip2region v2.0 - はオフラインIPアドレス位置情報ライブラリおよびIP位置情報データ管理フレームワークで、10マイクロ秒クラスのクエリ効率を備え、多数の主流プログラミング言語向けのxdbデータ生成およびクエリクライアント実装を提供します。

最終更新 2023/07/07 1:08
工具箱
読了目安 2 分
カテゴリ
.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ファイルのみに基づくクエリでも、1回のクエリ応答時間は数十マイクロ秒レベルです。以下の2つの方法でメモリアクセラレーションクエリを有効にできます。

  • vIndexインデックスキャッシュ:固定512KiBのメモリ空間を使用してvector indexデータをキャッシュし、1回のIOディスク操作を削減し、平均クエリ効率を10〜20マイクロ秒に安定させます。
  • xdb全体ファイルキャッシュ:xdbファイル全体をメモリにロードします。メモリ使用量はxdbファイルサイズと同等で、ディスクIO操作がなく、マイクロ秒レベルのクエリ効率を維持します。

4、IPデータ管理フレームワーク

v2.0形式のxdbは数億レベルのIPデータセグメント行数をサポートし、region情報も完全にカスタマイズ可能です。例えば、GPS情報、国際統一地域情報コード、郵便番号などの特定のビジネス要件に応じたデータをregionに追加できます。つまり、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>();

パフォーマンス

プロジェクトURL

https://github.com/lionsoul2014/ip2region

さらに探索

関連読書

その他の記事
同じカテゴリ / 同じタグ 2026/04/22

各OSバージョンの.NETサポート状況(250707更新)

仮想マシンとテストマシンを使用して、各OSバージョンの.NETサポート状況を確認します。OSインストール後、対応するランタイムをインストールし、Stardustエージェントを実行できることを確認します(合格条件)。

続きを読む
同じカテゴリ / 同じタグ 2026/02/07

AOTの使用経験のまとめ

プロジェクト作成当初から、新機能を追加したり新しい構文を使用したりした場合には、すぐにAOT公開テストを実施するという良い習慣を身につけるべきです。

続きを読む