Holen Sie sich Geolocation-Informationen der IP-Adresse in Bash in Linux
Manchmal müssen Sie die Geolokalisierungsinformationen für eine IP-Adresse schnell abrufen. Unter Linux können Sie die Leistungsfähigkeit von Konsolen-Apps nutzen, um Zeit zu sparen und diese Informationen schnell abzurufen. Mal sehen, wie es gemacht werden kann.
Werbung
Um die geografischen Standortinformationen zu einer bestimmten IP-Adresse zu erhalten, müssen Sie einen Onlinedienst verwenden, der die entsprechende API bereitstellt. Es ist eine gute Idee, einen öffentlichen Dienst zu nutzen, um das Autorisierungsverfahren und die API-Schlüsselverwaltung zu umgehen. Ein solcher Service ist FreeGeoIP.net.
Es bietet eine öffentliche HTTP-API, um die Geolokalisierung von IP-Adressen zu durchsuchen. Es verwendet eine Datenbank mit IP-Adressen, die mit Städten verbunden sind, zusammen mit anderen relevanten Informationen wie Zeitzone, Breiten- und Längengrad. Dies ist sehr nützlich.
Der Dienst kann Suchergebnisse als JSON oder XML bereitstellen. Wenn wir curl mit einem JSON-Parser kombinieren, können wir die erforderlichen Informationen erhalten.
Ich werde meinen Lieblings-JSON-Parser, jq, verwenden:
Es ist sehr leicht und schnell.
In unserem Fall sollte die Abfrage wie folgt lauten:
http://freegeoip.net/json/119.94.116.145
Der "json"-Teil ist hier das gewünschte Datenformat. Neben JSON kann es sich um XML oder CSV handeln.
Lassen Sie uns die Abfrage mit curl ausführen und die Ausgabe sehen:
Das Ergebnis ist eine unformatierte JSON-Ausgabe, die schwer zu lesen ist. Um das Erscheinungsbild des Resultsets zu verbessern, verwenden wir das jq-Tool. Kombinieren Sie es mit curl wie folgt:
Locken http://freegeoip.net/json/119.94.116.145|jq
Die Ausgabe wird einfacher zu lesen sein:
Mit jq können Sie die Ausgabe filtern und nur die erforderlichen Felder anzeigen. Der folgende Befehl zeigt nur den Ländernamen, Breitengrad und Längengrad an:
Locken http://freegeoip.net/json/119.94.116.145|jq -r '.Landesname,.Breite,.Länge'
Sie können diesen Befehl als folgendes Shell-Skript speichern:
#!/bin/sh. curl -s http://freegeoip.net/json/$1|jq -r '.Landesname,.Breite,.Länge'
Wenn Sie das nächste Mal Geolocation-Informationen benötigen, können Sie Ihr Skript wie folgt ausführen:
./geo.sh IP_Adresse
Das ist es.