LinuxのBashでIPアドレスのジオロケーション情報を取得する
IPアドレスのジオロケーション情報をすばやく取得する必要がある場合があります。 Linuxでは、コンソールアプリの機能を使用して時間を節約し、この情報をすばやく取得できます。 それがどのように行われるか見てみましょう。
広告
特定のIPアドレスに関する地理的位置情報を取得するには、適切なAPIを提供するオンラインサービスを使用する必要があります。 承認手順とAPIキー管理を回避するために、いくつかのパブリックサービスを使用することをお勧めします。 そのようなサービスの1つは FreeGeoIP.net。
IPアドレスのジオロケーションを検索するためのパブリックHTTPAPIを提供します。 都市に関連付けられているIPアドレスのデータベースと、タイムゾーン、緯度、経度などの他の関連情報を使用します。 これはとても便利です。
このサービスは、検索結果をJSONまたはXMLとして提供できます。 したがって、curlをJSONパーサーと組み合わせると、必要な情報を取得できます。
お気に入りのJSONパーサーjqを使用します。
非常に軽量で高速です。
この場合、クエリは次のようになります。
http://freegeoip.net/json/119.94.116.145
ここでの「json」部分は、目的のデータ形式です。 JSONの他に、XMLまたはCSVにすることができます。
curlを使用してクエリを実行し、出力を確認してみましょう。
結果は、読みにくい生のJSON出力になります。 結果セットの外観を改善するために、jqツールを使用してみましょう。 次のようにcurlと組み合わせます。
カール http://freegeoip.net/json/119.94.116.145|jq
出力は読みやすくなります。
jqを使用すると、出力をフィルタリングして、必要なフィールドのみを表示させることができます。 次のコマンドは、国名、緯度、経度のみを表示します。
カール http://freegeoip.net/json/119.94.116.145|jq -r'.country_name、.latitude、.longitude '
このコマンドは、次のシェルスクリプトとして保存できます。
#!/ bin / sh。 curl -s http://freegeoip.net/json/$1|jq -r'.country_name、.latitude、.longitude '
次回ジオロケーション情報を取得する必要があるときは、次のようにスクリプトを実行できます。
./geo.sh IP_address
それでおしまい。