はじめに
開発において、ログインユーザーのIPアドレスや位置情報を記録する必要がある場合、ip2regionを使用することで実現できます!
例えば:
- QQ、Giteeなどで異なる場所からログインした際に、アカウントが異なる場所でログインされたことを通知する
- 出前アプリなどの位置情報が必要なソフトウェアで、GPSがオフになっている場合でもIPアドレスから位置情報を分析するなど
概要
ip2region - 精度99.9%のオフラインIPアドレス位置情報ライブラリで、0.0xミリ秒のクエリ速度、ip2region.dbデータベースはわずか数MB。Java、PHP、C、Python、Node.js、Go、C#などのクエリバインディングと、Binary、B-tree、メモリの3つのクエリアルゴリズムを提供します。各IPデータセグメントの形式は固定されています:
- 都市ID|国|地域|省|都市|ISP_
- GitHubアドレス:https://github.com/lionsoul2014/ip2region
使用方法
- NuGetパッケージのインストール
Install-Package IP2Region
- ip2region.dbのダウンロード
git clone https://github.com/lionsoul2014/ip2region.git
その後、data/フォルダ内のip2region.dbをプロジェクトのresourcesフォルダにコピーします。
使用法は非常に簡単で、コードは1行です。
static void Main(string[] args)
{
using (var _search = new DbSearcher(Environment.CurrentDirectory + @"\DB\ip2region.db"))
{
Console.WriteLine(_search.MemorySearch("183.129.193.166").Region);
Console.Read();
}
}
まとめ
この記事は思いつきで書いたものです。現在の仕事でこのような要件に遭遇したことはありませんが、知っておいて損はないと思います。コメントでの議論をお待ちしております!