実現できること
不正アクセスしてきたようなIPアドレスが、どこの国からの送信かを確認したいことがあります。
IPアドレスはセキュリティ上、重要なコントロール要素です。
数件であればネット上で検索もできますが、数が多くなってくると、専用のサービスを使わないと確認しきれません。
一般的にはGeoIPサービスを用いて自動化していきますが、それなりのコストがかかります。
そこまでコストをかけてまで対応するものでもない・・・といった時に、GeoIP情報を使って、ローカル(端末)でマッチング処理をしてしまおう・・・というツールです。
MaxMind社が、(鮮度は劣るものの)無償でGeoIP情報を提供しています。
ここで取得できるcsvを使い、入力したIPアドレスについて地域情報をマッチングして出力するPythonツールとなります。
出力結果はコピペでスプレッドシートなどに貼り付けられます。
動作イメージ
※実行前に、Python環境の整備とGeoIP情報のCSV取得が必要です。(下記参照)
環境が整えば、Pythonを実行するだけです。
Windowsの例
コマンドプロンプトを開き、スクリプトを配置した場所に移動します。
以下のようにPythonを実行します。
python check-geoip.py
1行に1つIPアドレスを入力していきます。
Excelなどからのコピペも可能です。
最後に「go」と入力し、Enterを押すと処理が始まります。
待っていれば、結果が表示されます。
必要に応じて、結果欄をコピペしてお使いください。
(処理時間はさほど速くないため、大量にIPアドレスを調査しようとするとそれなりに時間がかかります)
Tips
Googleスプレッドシートに貼り付ける場合、コピペ後に出てくるマークで「テキストを列に分割」を選択すると、IPアドレスと国名の表示にセルが分かれます。
その他 利用コスト
WindowsPCやMacなど、Python実行環境があれば利用できます。(追加コストは不要です)
利用環境・動作確認環境
- Windows11 Pro(24H2)
- Python 3.13.1
- MaxMind社 GeoIP CSV形式
ツール管理番号
python-20250109-0001-01
利用方法
ツールを取得
以下よりツールをご購入いただき、ダウンロードしてください。
Zipを解凍いただくと「check-geoip.py」というファイルがあります。
そちらがツール本体です。
環境構築手順(初回)
1. Python環境の構築(Windows)
Python公式サイトより、ダウンロードしてください。
インストール時、「Add python.ext to PATH」にチェックを入れましょう。
インストール後、「Disable path length limit」を実行しておくこともオススメします。
インストールの確認をコマンドプロンプトで確認しましょう。
python --version pip --version
2. 必要なPythonライブラリをインストール
コマンドプロンプトにて、ライブラリをインストールします。
pip install pandas netaddr
3. GeoIPリストの取得
MaxMind社より、GeoIPのCSVデータを取得してください。
取得後、当Pythonスクリプトと同じフォルダに、以下のファイル名として配置してください。
「GeoIP.csv」:GeoLite2-Country-Blocks-IPv4.csv 相当のファイル
「GeoNames.csv」:GeoLite2-Country-Locations-ja.csv 相当のファイル
4. 実行
環境準備が完了しましたら、あとは実行するのみです。
実行方法は上記「動作イメージ」を参照ください。
更新履歴
2025/01/09 Ver.1.0 リリース