特定の IP アドレスに関する地理的位置情報を取得するには、適切な API を提供するオンライン サービスを使用する必要があります。認証手順や API キーの管理を回避するには、何らかの公開サービスを使用することをお勧めします。そのようなサービスの 1 つが、 FreeGeoIP.net。
IP アドレスの地理位置情報を検索するためのパブリック HTTP API を提供します。これは、都市に関連付けられた IP アドレスのデータベースと、タイムゾーン、緯度、経度などのその他の関連情報を使用します。これはとても便利です。
このサービスは、検索結果を JSON または XML として提供できます。したがって、curl と JSON パーサーを組み合わせれば、必要な情報を取得できます。
私のお気に入りの JSON パーサー、jq を使用します。
とても軽くて速いです。
私たちの場合、クエリは次のようになります。
|_+_|ここでの「json」部分は、必要なデータ形式です。 JSON のほかに、XML や CSV も使用できます。
curl を使用してクエリを実行し、出力を確認してみましょう。
結果は、読みにくい生の JSON 出力になります。結果セットの外観を改善するには、jq ツールを使用してみましょう。次のようにカールと組み合わせます。
|_+_|出力は読みやすくなります。
jq を使用すると、出力をフィルタリングして、必要なフィールドのみを表示することができます。次のコマンドは、国名、緯度、経度のみを表示します。
|_+_|このコマンドは、次のシェル スクリプトとして保存できます。
|_+_|次回地理位置情報を取得する必要があるときは、次のようにスクリプトを実行できます。
|_+_|それでおしまい。