Če želite pridobiti podatke o geografski lokaciji za določen naslov IP, morate uporabiti spletno storitev, ki ponuja ustrezen API. Dobro je uporabiti kakšno javno storitev, da se izognete postopku avtorizacije in upravljanju ključev API. Ena takih storitev je FreeGeoIP.net.
Ponuja javni HTTP API za iskanje geolokacije naslovov IP. Uporablja zbirko podatkov naslovov IP, ki so povezani z mesti, skupaj z drugimi ustreznimi informacijami, kot so časovni pas, zemljepisna širina in dolžina. To je zelo koristno.
Storitev lahko zagotovi rezultate iskanja kot JSON ali XML. Torej, če združimo curl z razčlenjevalnikom JSON, lahko dobimo zahtevane informacije.
Uporabil bom svoj najljubši razčlenjevalnik JSON, jq:
Je zelo lahek in hiter.
V našem primeru bi morala biti poizvedba naslednja:
|_+_|Del 'json' tukaj je želena oblika podatkov. Poleg JSON je lahko XML ali CSV.
Zaženimo poizvedbo s curl in poglejmo rezultat:
Rezultat je neobdelani izpis JSON, ki ga je težko brati. Za izboljšanje videza niza rezultatov uporabimo orodje jq. Kombinirajte ga s kodri na naslednji način:
|_+_|Izpis bo lažje berljiv:
Z uporabo jq lahko filtrirate izpis in omogočite, da prikaže samo zahtevana polja. Naslednji ukaz bo prikazal samo ime države, zemljepisno širino in dolžino:
|_+_|Ta ukaz lahko shranite kot naslednji lupinski skript:
|_+_|Naslednjič, ko boste potrebovali podatke o geolokaciji, lahko svoj skript izvedete takole:
|_+_|To je vse.