Top

GeoIPの利用方法


GeoIPとは

GeoIPとは簡単にいえば「IPアドレスから地理情報を得る仕組み」です。

以下、当サイトでは MaxMind 社が配布している GeoLite Country を対象に記述します。 これは以下の特徴があります。


GeoIP用ツール

MaxMind社のサイトから Cのライブラリおよびコマンドラインツールのソースを入手できます。 Debianの場合は以下のパッケージをインストールします。
geoip-bin
コマンドラインツール
libgeoip1
ライブラリおよびデータベース

コマンドラインツールの geoiplookup は以下のようにして利用します。

% geoiplookup 203.216.243.218 (←one of www.yahoo.co.jp)
GeoIP Country Edition: JP, Japan
% geoiplookup www.google.com
GeoIP Country Edition: US, United States
GeoIPのデータベースはあくまでも IPアドレスから国情報を索くだけです。 ホスト名を指定した場合は、geoiplookup 内でホスト名の正引きを行ってからデータベースの参照を行うだけで、ホスト名の字面は一切考慮しません。 よって、ホスト名からIPアドレスが索けない場合は国情報も得られません。

海外に多いのですが、以下のような場合が結構あり、その場合はホスト名は役に立ちません。


GeoIPデータベースの更新

IPアドレスの割当は日々変更されており、MaxMind社のデータベースもそれに応じて更新されています。 最新のGeoIPのデータベースを取得しておかないと、国コードが索けなかったり、違う国コードを索いてしまう場合があります。

GeoLite Countryのデータベースは http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz から取得できます。 これを取得しデータベースを挿し替えるための シェルスクリプト を用意しました[2008/12/08 URL変更に伴い修正]。 Debianのlibgeoip1パッケージによるファイル配置に合わせてありますので、利用環境に応じて先頭のGEODIRを変更してください。

GeoLite Countryのデータベースは月1回程度のペースで更新されています。 (MaxMind社のページ では「毎月1日に更新」と記載されていますが、実際には毎月3日あたりのことが多いようですので、cronを設定する場合はその辺りを考慮した方がよいと思います。

なお Cのコマンドラインツールには geoipupdate というコマンドが付いてきますが、これで更新できるのは MaxMind社が有償で配布しているバージョンのデータベースです。 比較表 によればこちらの方が情報精度や更新頻度も高いとのことです。


他アプリケーションでのGeoIPの利用


hiramoto@flatray.com (平本 光二/HIRAMOTO Kouji)