以下、当サイトでは MaxMind 社が配布している GeoLite Country を対象に記述します。 これは以下の特徴があります。
コマンドラインツールの 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 StatesGeoIPのデータベースはあくまでも IPアドレスから国情報を索くだけです。 ホスト名を指定した場合は、geoiplookup 内でホスト名の正引きを行ってからデータベースの参照を行うだけで、ホスト名の字面は一切考慮しません。 よって、ホスト名からIPアドレスが索けない場合は国情報も得られません。
海外に多いのですが、以下のような場合が結構あり、その場合はホスト名は役に立ちません。
GeoLite Countryのデータベースは http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz から取得できます。 これを取得しデータベースを挿し替えるための シェルスクリプト を用意しました。 Debianのlibgeoip1パッケージによるファイル配置に合わせてありますので、利用環境に応じて先頭のGEODIRを変更してください。
GeoLite Countryのデータベースは月1回程度のペースで更新されています。 (MaxMind社のページ では「毎月1日に更新」と記載されていますが、実際には毎月3日あたりのことが多いようですので、cronを設定する場合はその辺りを考慮した方がよいと思います。
なお Cのコマンドラインツールには geoipupdate というコマンドが付いてきますが、これで更新できるのは MaxMind社が有償で配布しているバージョンのデータベースです。 比較表 によればこちらの方が情報精度や更新頻度も高いとのことです。