Per ottenere 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.
Utilizzerò il mio parser JSON preferito, jq:
È molto leggero e veloce.
Nel nostro caso la query dovrebbe essere la seguente:
|_+_|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 il ricciolo come segue:
|_+_|L'output sarà più facile da leggere:
Usando jq, puoi filtrare l'output e far sì che mostri solo i campi richiesti. Il seguente comando visualizzerà solo il nome del paese, la latitudine e la longitudine:
|_+_|Puoi salvare questo comando come il seguente script di shell:
|_+_|La prossima volta che avrai bisogno di ottenere informazioni sulla geolocalizzazione, puoi eseguire il tuo script in questo modo:
|_+_|Questo è tutto.