Um die geografischen Standortinformationen zu einer bestimmten IP-Adresse zu erhalten, müssen Sie einen Onlinedienst nutzen, der die entsprechende API bereitstellt. Es ist eine gute Idee, einen öffentlichen Dienst zu nutzen, um das Autorisierungsverfahren und die API-Schlüsselverwaltung zu vermeiden. Ein solcher Dienst ist FreeGeoIP.net.
Es bietet eine öffentliche HTTP-API zur Suche nach der Geolokalisierung von IP-Adressen. Es verwendet eine Datenbank mit IP-Adressen, die Städten zugeordnet sind, sowie andere relevante Informationen wie Zeitzone, Breiten- und Längengrad. 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.
Ich werde meinen Lieblings-JSON-Parser verwenden, jq:
Es ist sehr leicht und schnell.
Für unseren Fall sollte die Abfrage wie folgt lauten:
|_+_|Der „json“-Teil ist hier das gewünschte Datenformat. Neben JSON kann es auch XML oder CSV sein.
Lassen Sie uns die Abfrage mit Curl ausführen und die Ausgabe sehen:
Das Ergebnis ist eine rohe JSON-Ausgabe, die schwer zu lesen ist. Um das Erscheinungsbild der Ergebnismenge zu verbessern, verwenden wir das jq-Tool. Kombinieren Sie es mit Curl wie folgt:
|_+_|Die Ausgabe wird einfacher zu lesen sein:
Mit jq können Sie die Ausgabe filtern und dafür sorgen, dass nur die erforderlichen Felder angezeigt werden. Der folgende Befehl zeigt nur den Ländernamen sowie den Breiten- und Längengrad an:
|_+_|Sie können diesen Befehl als folgendes Shell-Skript speichern:
|_+_|Wenn Sie das nächste Mal Geolokalisierungsinformationen benötigen, können Sie Ihr Skript wie folgt ausführen:
|_+_|Das ist es.