Da biste dobili informacije o geolokaciji određene IP adrese, trebate koristiti neku online uslugu koja pruža odgovarajući API. Dobro je koristiti neki javni servis kako biste izbjegli proceduru autorizacije i upravljanje API ključem. Jedan takav servis je FreeGeoIP.net.
Omogućuje javni HTTP API za pretraživanje geolokacije IP adresa. Koristi bazu podataka IP adresa koje su povezane s gradovima zajedno s drugim relevantnim informacijama poput vremenske zone, zemljopisne širine i dužine. Ovo je vrlo korisno.
Usluga može pružiti rezultate pretraživanja kao JSON ili XML. Dakle, ako kombiniramo curl s nekim JSON parserom, možemo dobiti potrebne informacije.
Koristit ću svoj omiljeni JSON parser, jq:
Vrlo je lagan i brz.
Za naš slučaj, upit bi trebao biti sljedeći:
|_+_|Dio 'json' ovdje je željeni format podataka. Osim JSON-a, može biti XML ili CSV.
Pokrenimo upit s curl i vidimo izlaz:
Rezultat je sirovi JSON izlaz koji je teško čitati. Kako bismo poboljšali izgled skupa rezultata, upotrijebimo alat jq. Kombinirajte ga s kovrčama na sljedeći način:
|_+_|Ispis će biti lakši za čitanje:
Koristeći jq, možete filtrirati izlaz i prikazati samo potrebna polja. Sljedeća naredba će prikazati samo naziv zemlje, zemljopisnu širinu i dužinu:
|_+_|Ovu naredbu možete spremiti kao sljedeću skriptu ljuske:
|_+_|Sljedeći put kada trebate dobiti informacije o geolokaciji, možete izvršiti svoju skriptu ovako:
|_+_|To je to.