IPアドレスから位置情報を取得してみたい


IPアドレスは完全に公開された値ですが、このIPアドレスから緯度経度などの位置情報を取得することができます。

これらの情報を取得するためのAPIがいくつか用意されています。
今回はPythonからそれらを利用してみたいと思います。


api.hostip.info


このapiを利用してIPアドレスから緯度経度を含めた諸々の情報を取得できます。

Pythonをではrequestを使い以下のように利用します。


実行結果はこうなります。
緯度経度の他都市名なども取得できました。

MaxMind database


MaxMindはIPアドレスの位置情報を提供している会社です。

MaxMindから彼らのデータベースにアクセスするAPIが提供されているみたいです。
おそらくこれです。


Pythonからはこのように利用します。
IPアドレスは適当に指定しています。


実行するとこうなりました。


api.hostip.infoよりも詳細な情報が取得できました。

Shodan


これについては以前記事を書きましたが、Shodanという検索エンジンを使って位置情報を取得することもできます。
位置情報の他にも脆弱性やOSの種類なども取得できます。

アカウントを作成する必要がありますが、Pythonから利用することが可能です。


MaxMindとShodanについては他のプログラミング言語にも提供されているようです。
https://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs
https://developer.shodan.io/api/clients