Ottieni informazioni di geolocalizzazione dell'indirizzo IP in Bash in Linux
A volte è necessario ottenere rapidamente le informazioni di geolocalizzazione per un indirizzo IP. In Linux, puoi utilizzare la potenza delle app per console per risparmiare tempo e recuperare rapidamente queste informazioni. Vediamo come si può fare.
Annuncio
Per ottenere le informazioni sulla posizione geografica su un indirizzo IP specifico, è necessario utilizzare alcuni servizi online che forniscono l'API appropriata. È una buona idea utilizzare qualche servizio pubblico per evitare la procedura di autorizzazione e la gestione delle chiavi API. Uno di questi servizi è FreeGeoIP.net.
Fornisce un'API HTTP pubblica per cercare la geolocalizzazione degli indirizzi IP. Utilizza un database di indirizzi IP associati alle città insieme ad altre informazioni rilevanti come fuso orario, latitudine e longitudine. Questo è molto utile.
Il servizio può fornire risultati di ricerca come JSON o XML. Quindi, se combiniamo curl con un parser JSON, possiamo ottenere le informazioni richieste.
Userò il mio parser JSON preferito, jq:
È molto leggero e veloce.
Per il nostro caso, la query dovrebbe essere la seguente:
http://freegeoip.net/json/119.94.116.145
La parte "json" qui è il formato dati desiderato. Oltre a JSON, può essere XML o CSV.
Eseguiamo la query con curl e vediamo l'output:
Il risultato è un output JSON non elaborato che è difficile da leggere. Per migliorare l'aspetto del set di risultati, utilizziamo lo strumento jq. Combinalo con curl come segue:
arricciare http://freegeoip.net/json/119.94.116.145|jq
L'output sarà più facile da leggere:
Usando jq, puoi filtrare l'output e fargli mostrare solo i campi richiesti. Il seguente comando visualizzerà solo il nome del paese, la latitudine e la longitudine:
arricciare http://freegeoip.net/json/119.94.116.145|jq -r '.nome_paese,.latitudine,.longitudine'
Puoi salvare questo comando come il seguente script di shell:
#!/bin/sh. curl -s http://freegeoip.net/json/$1|jq -r '.nome_paese,.latitudine,.longitudine'
La prossima volta che hai bisogno di ottenere informazioni di geolocalizzazione, puoi eseguire il tuo script in questo modo:
./geo.sh indirizzo_IP
Questo è tutto.