Manchmal müssen Sie die Geolokalisierungsinformationen für eine IP-Adresse schnell abrufen. Unter Linux können Sie die Leistung von Konsolen-Apps nutzen, um Zeit zu sparen und diese Informationen schnell abzurufen. Mal sehen, wie es geht.
Werbung
Um die Geostandortinformationen 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 verwenden, um das Autorisierungsverfahren und die API-Schlüsselverwaltung zu vermeiden. Ein solcher Dienst ist FreeGeoIP.net.
Es bietet eine öffentliche HTTP-API zum Durchsuchen der Geolokalisierung von IP-Adressen. Es verwendet eine Datenbank mit IP-Adressen, die Städten zugeordnet sind, sowie andere relevante Informationen wie Zeitzone, Breite und Länge. Das ist sehr nützlich.
Der Dienst kann Suchergebnisse als JSON oder XML bereitstellen. Wenn wir also Curl mit einem JSON-Parser kombinieren, können wir die erforderlichen Informationen erhalten.
So machen Sie Steam-Download-Spiele schneller
Ich werde meinen Lieblings-JSON-Parser verwenden, jq:
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 hier ist 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 schwer lesbare JSON-Rohausgabe. Verwenden Sie das jq-Tool, um das Erscheinungsbild der Ergebnismenge zu verbessern. Kombinieren Sie es mit Locken wie folgt:
Curl http://freegeoip.net/json/119.94.116.145|jq
Die Ausgabe ist leichter zu lesen:
Mit jq können Sie die Ausgabe filtern und nur die erforderlichen Felder anzeigen lassen. Der folgende Befehl zeigt nur den Ländernamen, den Breiten- und Längengrad an:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Sie können diesen Befehl als folgendes Shell-Skript speichern:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Wenn Sie das nächste Mal Geolokalisierungsinformationen abrufen müssen, können Sie Ihr Skript folgendermaßen ausführen:
./geo.sh IP-Adresse
Das ist es.