geoiplookup で発信元をみる。


なんとなく、サーバ管理をしている人なら、
どこからアクセスされてきたんだろうとか気になることがあるはず。

というわけで、 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

こんな感じ。

image

ちなみに地図はこんな所出してますが、

$ 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 に掛けまくります。

動作サンプルは個人情報がもろもろ入っているので止めますが。

であであ。


 

関連記事