Come Ottenere il Vostro Sistema di Localizzazione Geografica Da uno Script Bash

0
606
Toria/Shutterstock.com

È possibile trovare la posizione geografica di un remoto sistema Linux che utilizza le Api aperte e un semplice script bash. Geolocating un server potrebbe aiutare a tenere traccia di esso nel mondo fisico, garantendo i server sono situati in regionale hotspot.

Ogni server su internet ha un pubblico di indirizzo IP. Questo è direttamente assegnato al server, o assegnato a un router che invia il traffico al server. Gli indirizzi IP darci un indizio su cui il server si trova in tutto il mondo. Siamo in grado di ottenere questo geolocalizzazione dei dati attraverso due Api aperte, fornito dalla ipinfo.co IP e Vigilante e si usa per vedere la città, stato e paese associato con un server o un altro sistema remoto. Ciò non consente una precisa posizione GPS; esso permette di vedere il generale area di indirizzo IP.

Connettersi a un Sistema Remoto

Sarete eseguendo i seguenti comandi sul server Linux o altri sistemi remoti che si desidera geolocalizza, quindi, è necessario connettersi al server e accedere a una shell su di esso. Ad esempio, è possibile collegare via SSH. È possibile eseguire i comandi del sistema locale per trovare la sua posizione, ma probabilmente già sapere dove sei!

Installare curl e jq

Abbiamo bisogno di due strumenti per accedere alle API di geolocalizzazione: curl per effettuare richieste HTTP e jq per elaborare i dati in formato JSON che ci torna indietro. Aprire un terminale e usare apt-get per installare questi strumenti su Ubuntu o Debian-based. Su altre distribuzioni Linux, usare la vostra distribuzione di Linux strumento di installazione dei pacchetti, invece.

sudo apt-get install curl jq

Trovare il Server Indirizzo IP Pubblico

Abbiamo bisogno anche di una pubblica del server, indirizzo IP, prima di poter ottenere i dati di geolocalizzazione. Utilizzare curl per effettuare una chiamata API per ipinfo.io nella finestra del terminale.

curl https://ipinfo.io/ip

Ottenere i Dati di Posizione di API

Ora che hai l’IP pubblico del server, siamo in grado di effettuare una chiamata a ipvigilante.com’s API per ottenere i dati di geolocalizzazione. Sostituire <indirizzo ip> con l’indirizzo che è tornato nel comando precedente.

curl https://ipvigilante.com/<indirizzo ip>

Diamo un’occhiata più da vicino quali sono i dati che tornare da questa chiamata:

L’API restituisce città, paese, continente, in cui il nostro si trova il server. Restituisce approssimativa latitudine e longitudine, nel caso in cui si desidera disegnare questo server su una mappa interattiva. Useremo la “latitudine” e “longitudine” “city_name,” e “country_name” nel nostro script. La jq comando capisce come elaborare i dati API ed estratto di questi quattro campi.

Creazione di uno Script per Automatizzare La Chiamata all’API

Siamo in grado di creare uno script che afferra la geolocalizzazione dei dati e li scrive in un file in formato CSV. I dati vengono scritti in un file chiamato server_location.txt nella directory /tmp. Aprite il vostro editor preferito e creare uno script di nome geolocate.sh . Inserire lo script contenuto mostrato di seguito, assicurarsi di sostituire l’indirizzo IP con il proprio:

#!/bin/sh

OUTPUT_FILE=/tmp/server_location.txt

# Afferrare questo server indirizzo IP pubblico
PUBLIC_IP=`curl -s https://ipinfo.io/ip`

# Chiamare le API di geolocalizzazione e catturare l’output
curl-s https://ipvigilante.com/169.255.X.X |
jq ‘.dati.latitudine .dati.longitudine, .dati.city_name, .dati.country_name’ |
mentre la lettura -r LATITUDINE; fare
leggere -r LONGITUDINE
leggere -r CITTÀ
leggere -r PAESE
echo “${LATITUDINE},${LONGITUDINE},${CITTÀ},${PAESE}” |
tr –delete ” >
${OUTPUT_FILE}
fatto

Salvare lo script e tornare al terminale. Rendere lo script eseguibile da terminale, concedendo l’autorizzazione di esecuzione di questo file.

chmod u+x geolocate.sh

Ora sei pronto per il test. Eseguire il geolocate.sh script e controllare il contenuto del file di output:

./geolocate.sh
cat /tmp/server_location.txt

L’aggiornamento, la Geolocalizzazione dei Dati una Volta al Giorno Con un Cron Job

Proviamo a creare un cron job per rendere il nostro server aggiorna la sua geolocalizzazione e salvarlo in un file una volta al giorno. Il job di cron quotidiano aggiorna un file chiamato server_location.txt nella cartella /tmp/ del server. La creazione di una reception aperta 24 ore cron job è facile come mettere il nostro script in /etc/cron.quotidiano directory. Dobbiamo usare il comando “sudo” per copiare il file come utente root, per evitare problemi di autorizzazione. Eseguire il seguente comando per copiare geolocate.sh a /etc/cron.quotidiano directory.

sudo cp geolocate.sh /etc/cron.quotidiano

Queste modifiche sono immediate, e il nostro script verrà eseguito ogni 24 ore per aggiornare il contenuto di /tmp/server_location.txt file. Siamo in grado di utilizzare questi dati per fare cose interessanti, come tramando il nostro server su una mappa, così come la combinazione di geolocalizzazione con log del traffico per vedere il mondo, il nostro server hotspot.