So erhalten Sie den geografischen Standort Ihres Systems aus einem Bash-Skript

Weltkarte mit Internetverbindungskonzept

Toria/Shutterstock.com



Sie können den geografischen Standort eines entfernten Linux-Systems mithilfe offener APIs und eines einfachen Bash-Skripts ermitteln. Die Geolokalisierung eines Servers könnte Ihnen dabei helfen, ihn in der physischen Welt zu verfolgen und sicherzustellen, dass sich die Server an regionalen Hotspots befinden.

Jeder Server im Internet hat einen öffentlich zugänglichen IP Adresse . Diese wird entweder direkt dem Server oder einem Router zugewiesen, der Datenverkehr an diesen Server sendet. IP-Adressen geben uns einen Hinweis darauf, wo sich dieser Server auf der Welt befindet. Wir können diese Geolokalisierungsdaten über zwei offene APIs abrufen, die von ipinfo.co und IP Vigilante bereitgestellt werden, und sie verwenden, um die Stadt, den Bundesstaat und das Land anzuzeigen, die mit einem Server oder einem anderen Remote-System verbunden sind. Dies gibt Ihnen keinen genauen GPS-Standort; es lässt Sie nur den allgemeinen Bereich der IP-Adresse sehen.





Verbinden mit einem Remote-System

Sie führen die folgenden Befehle auf dem Linux-Server oder anderen Remote-Systemen aus, die Sie geolokalisieren möchten. Sie müssen sich also mit dem Server verbinden und zuerst auf eine Shell darauf zugreifen. Zum Beispiel könnten Sie über SSH verbinden . Sie könnten die Befehle auf Ihrem lokalen System ausführen, um seinen Standort zu finden, aber Sie wissen wahrscheinlich bereits, wo Sie sich befinden!

curl und jq . installieren

Wir benötigen zwei Tools, um auf die Geolocation-API zuzugreifen: |_+_| um HTTP-Anfragen zu stellen und |_+_| um die JSON-Daten zu verarbeiten, die wir zurückerhalten. Öffnen Sie ein Terminal und verwenden Sie |_+_| um diese Tools auf Ubuntu- oder Debian-basierten Systemen zu installieren. Verwenden Sie bei anderen Linux-Distributionen stattdessen das Paketinstallationstool Ihrer Linux-Distribution.



curl

Finden Sie die öffentliche IP-Adresse des Servers

Wir benötigen auch die öffentliche IP-Adresse des Servers, bevor wir die Geolokalisierungsdaten abrufen können. Verwenden Sie |_+_| um in Ihrem Terminalfenster einen API-Aufruf an ipinfo.io zu tätigen.

jq

Abrufen von Standortdaten von der API

Da wir nun die öffentliche IP des Servers haben, können wir die API von ipvigilante.com aufrufen, um die Geolokalisierungsdaten abzurufen. Ersetzen |_+_| mit der Adresse, die im vorherigen Befehl zurückgegeben wurde.

apt-get

Ausgabe vom curl-Befehl



Anzeige

Schauen wir uns einmal genauer an, welche Daten wir von diesem Aufruf erhalten:

Metadaten mit Standortinformationen

Die API gibt die Stadt, das Land und den Kontinent zurück, in dem sich unser Server befindet. Es gibt auch die ungefähren Breiten- und Längenkoordinaten zurück, falls wir diesen Server auf einer interaktiven Karte zeichnen möchten. Wir verwenden Breitengrad, Längengrad, Stadtname und Landname in unserem Skript. Die |_+_| Der Befehl versteht es, die API-Daten zu verarbeiten und diese vier Felder zu extrahieren.

Erstellen eines Skripts zur Automatisierung des API-Aufrufs

Wir können ein Skript erstellen, das die Geolokalisierungsdaten erfasst und in eine Datei im CSV-Format schreibt. Die Daten werden in eine Datei namens |_+_| . geschrieben im |_+_| Verzeichnis. Öffnen Sie Ihren bevorzugten Editor und erstellen Sie ein Skript namens |_+_| . Fügen Sie den unten gezeigten Skriptinhalt ein und achten Sie darauf, die IP-Adresse durch Ihre eigene zu ersetzen:

curl

Speichern Sie das Skript und gehen Sie zurück zum Terminal. Machen Sie das Skript vom Terminal aus ausführbar, indem Sie die Ausführungsberechtigung für diese Datei erteilen.

Jetzt können Sie es testen. Führen Sie die |_+_| Skript und überprüfen Sie den Inhalt der Ausgabedatei:

jq

Ausführen des Geolokalisierungsskripts

Aktualisieren der Geolokalisierungsdaten einmal täglich mit einem Cron-Job

Lassen Sie uns einen Cron-Job erstellen, damit unser Server seine Geolocation aktualisiert und einmal täglich in einer Datei speichert. Der tägliche Cron-Job aktualisiert eine Datei namens |_+_| im |_+_| Ordner des Servers. Das Erstellen eines 24-Stunden-Cronjobs ist so einfach wie das Einfügen unseres Skripts in das |_+_| Verzeichnis. Wir müssen den sudo-Befehl verwenden, um die Datei als Root-Benutzer zu kopieren, um Berechtigungsprobleme zu vermeiden. Führen Sie den folgenden Befehl aus, um |_+_| . zu kopieren zum |_+_| Verzeichnis.

server_location.txtAnzeige

Diese Änderungen erfolgen sofort und unser Skript wird alle 24 Stunden ausgeführt, um den Inhalt der |_+_| . zu aktualisieren Datei. Wir können diese Daten verwenden, um interessante Dinge zu tun, wie zum Beispiel unsere Server auf einer Karte darzustellen oder die Geolokalisierung mit Verkehrsprotokollen zu kombinieren, um zu sehen, wo auf der Welt sich unsere Server-Hotspots befinden.

WEITER LESEN
  • › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
  • › Was ist MIL-SPEC Fallschutz?
  • › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
  • › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
  • › So finden Sie Ihr Spotify Wrapped 2021
  • & rsaquo; Cyber ​​Monday 2021: Die besten Tech-Deals
Profilfoto von Taylor Gibb Taylor Gibb
Taylor Gibb ist ein professioneller Softwareentwickler mit fast einem Jahrzehnt Erfahrung. Er war zwei Jahre lang als Microsoft Regional Director in Südafrika tätig und hat mehrere Microsoft MVP (Most Valued Professional) Auszeichnungen erhalten. Derzeit arbeitet er im Bereich Forschung und Entwicklung bei Derivatco International.
Vollständige Biografie lesen

Interessante Artikel