トップ «前の日記(2004-06-13) 最新 次の日記(2005-03-14)» 編集

ねこの研究室。

Courier-IMAP 公式ページ 日本語訳もどうぞ。
Courier-IMAP | LDAP | debian | distro | kernel | mac | misc | tDiary | tool
 

2004-12-16 超とても久しぶりの更新。

_ [tool] AWSTatsでGeoIP。

GeoIP(GeoIP Free)というのは初めて知った(AWSTatsの設定ファイルをざーっと見てたら発見)のだが、MaxMindという会社が提供しているツールだそうな。ホスト名またはIPアドレスから、その計算機が地球上のどこに設置されているのか(国とか)を調べるツール、並びにそのデータベースを提供している。オープンソース版と商用版が存在する(機能比較←下の方の表)らしく、商用版の方で提供されるデータベースではより詳しい情報(国だけじゃなくて、市などの解像度で提供。いくつかレベルがあるようだ。よくは見ていない)を得ることができるそうだ。

このサービスの素晴らしいところは、使いやすいコマンドを提供していること、多くの言語へのAPIを提供していることなどであろう。データベースはいちいち問い合わせるのではなくて、データベースファイルを自分の計算機にあらかじめダウンロードして利用するようだ。商用版の方にはgeoipupdateというアップデートコマンドが用意されているが、オープンソース版でも最新のデータベースファイルをhttp://www.maxmind.com/app/geoip_countryよりダウンロードすることができる。(gzip形式のファイルがそれ)

さて、こんなサービスが何の役に立つのか?ということだが、昨今ではプロバイダも.netなどの汎用ドメインを利用し始めて、特にアクセス解析の場合、どの国からのアクセスが多いのかが単にドメインを見ただけでは分からない、という話がある。うちのような個人サイトなら別にどうでもいい話だが、企業のサイトなんかではデータマイニングのための一つのキーとなるやもしれない。よう分からん。僕は単純にそこに真新しいサービスがあったから、使ってみただけ。

AWSTatsからこのサービスを利用するためには、まず、Geo::IPfree Perlモジュールをシステムにインストールする必要がある。CPANを使えば、簡単にインストールできるはず。(うちは偉大なる同志、濱野氏のサーバに間借りさせていただいているので、ホームディレクトリの下にインストールしている)ちなみにこれはオープンソース版を使った場合の話ね。商用版のアカウントをちゃんと持っている人は、Cで実装されたライブラリGeo::IP Perlモジュールをインストールする必要がある。Cライブラリを使うから、商用版の方が高速に処理ができるんだとか。そうそう上のCライブラリをコンパイルすると、先に述べたgeoipupdateコマンドとか、コマンドライン上で国情報を調べるgeoiplookupコマンドなどもインストールされる。geoipupdateコマンドは商用版のアカウントを取得しないと使えないけれど、geoiplookupコマンドは普通に使える。こんな風に。
$ geoiplookup mjm4u.net
GeoIP Country Edition: JP, Japan

材料の仕込みが終わったら、今度はAWSTatsの設定。AWSTatsの設定ファイル(awstats.hoge.conf)を開き、その下の方を見てみると、
# LoadPlugin="geoipfree"
という行が見つかるはず。このコメントを外せば、終わり。それだけ。何も後はする必要はない。商用版の場合は、
# LoadPlugin="geoip"
のコメントアウトを外せば良いだけ。もともと、AWSTatsのディレクトリの中をよく見てみると分かるけれど、geoipfree.pmというプラグインファイルが入っているんだよね。用意が良い。

で、実際にこれを使ったらどうなるのか?を右に載せてみる。同じログに大して、geoipfreeプラグインを使った場合と使わなかった場合の挙動を比較してみた、とそこまで用意してたら、素晴らしいレビュ記事になっていたことだろうが、ここでは適用後しか用意してない。ごめんなさい。まあ、とにかくテストページを見てくださいな。.netや.orgや.comといった汎用ドメインが消えて、全て正確な国名情報に変換されているでしょ?(もちろん、不明のものも若干ある)みなさんのサイトでの表示と比べてみてください。さりげなく記されているプラグイン情報にもご注目。
Advanced Web Statistics 6.0 (build 1.704) - Created by awstats (with plugin geoipfree)
まあこんな感じかな。