ログに記述されているIPアドレスの国名を出力するスクリプト

スポンサーリンク
スポンサーリンク

サーバのログに記録されているIPアドレスが、どの国のものか調べたいことがあります。
そこで、IPアドレスを抜き出して、その国名を表示するperlスクリプトを作成しました。

準備

スクリプト ip2countryname.pl を下記からダウンロードします。
https://skydrive.live.com/redir?resid=D54242E7C106EE41!108&authkey=!APdxeMzSUCDycgs

また、スクリプトで使用する為の、世界の国別 IPv4 アドレス割り当てリストのCIDR形式のファイルを取得します。
尚、このファイルはiptables - 国内からの接続のみ許可して海外からの接続を遮断するの記事でも使用していますので、そのファイルがある場合はそちらを使用できます。

wget -q -N http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip -q -f -c cidr.txt.gz > cidr.txt

実行

実行は、IPアドレスが含まれたテキストを以下のようにパイプで渡してください。

cat /var/log/secure | perl  ip2countryname.pl 

結果は以下のように出力されます。
テキスト中のIPアドレスを抜き出して、国名とともに表示します。
実際は xx.xx.xx.xx の箇所がIPアドレスになっています。

xx.xx.xx.xx  日本
xx.xx.xx.xx  中華人民共和国
xx.xx.xx.xx  日本
xx.xx.xx.xx  中華人民共和国
xx.xx.xx.xx  カナダ

または、perl ip2countryname.pl のみで実行後、手入力でIPアドレスを入力して下さい。
1行入力するごとに、IPアドレスと国名を表示します。

参考

トップレベルドメイン一覧 – Wikipedia
世界の国別 IPv4 アドレス割り当てリスト

コメント

タイトルとURLをコピーしました