なんとなく、サーバ管理をしている人なら、
どこからアクセスされてきたんだろうとか気になることがあるはず。
というわけで、 GeoIP のデータベースを使って、どこからアクセスしてきたかを見てみます。
1.インストール。
CentOS とか Fedora だと、 geoip をインストールすれば入ります。
# yum install geoip
Ubuntu さんとか LinuxMint さんも同じなんじゃないかと思います。
2.データベースを更新する。
MaxMind GeoIP Country Database
http://www.maxmind.com/app/geolitecountry
MaxMind GeoIP City Database
http://www.maxmind.com/app/geolitecity
この2つをダウンロードします。
http://www.maxmind.com/app/installation?city=1
このページに従いますと、
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz # gzip -d GeoLiteCity.dat.gz # gzip -d GeoIP.dat.gz # mv GeoIP.dat /usr/share/GeoIP/ # mv GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
という感じでしょうかw
3.使う。
$ geoiplookup 111.89.178.190 GeoIP Country Edition: JP, Japan GeoIP City Edition, Rev 1: JP, 40, Tokyo, N/A, 35.685001, 139.751404, 0, 0 GeoIP City Edition, Rev 0: JP, 40, Tokyo, N/A, 35.685001, 139.751404
こんな感じ。
ちなみに地図はこんな所出してますが、
$ nslookup sony.ne.jp Server: 192.168.1.3 Address: 192.168.1.3#53 Non-authoritative answer: Name: sony.ne.jp Address: 111.89.178.190
この場所に民間企業があるとは思えないので、
位置のずれを感じるわけですが。
(この企業さんには、ノートパソコンで主にお世話になっておりまする)
でも、国の判定とかそれぐらいには使えそう。
あくまでも気休め・・ですがw
4.適当に使ってみる。
$ cat access.log* | cut -f1 -d" " | sort | uniq | awk '{ print system("geoiplookup " $1) }'
たとえばこんな感じ。
Apache のログからIP アドレス出してきて、geoiplookup に掛けまくります。
動作サンプルは個人情報がもろもろ入っているので止めますが。
であであ。