ECサイト 先行公開キャンペーン! 50%オフクーポン【 pre-open-202412 】2025/1末まで

【Python】GeoIP地域情報 紐づけスクリプト(マニュアル)

実現できること

不正アクセスしてきたような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公式サイトより、ダウンロードしてください。

https://www.python.org/

インストール時、「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 リリース