Včasih morate hitro dobiti podatke o geolokaciji za naslov IP. V Linuxu lahko z močjo konzolnih aplikacij prihranite čas in hitro pridobite te informacije. Poglejmo, kako je to mogoče storiti.
Oglas
Če želite pridobiti informacije o geolokaciji za določen naslov IP, morate uporabiti spletno storitev, ki nudi ustrezen API. Dobro je uporabiti neko javno storitev, da se izognete postopku avtorizacije in upravljanju s ključi API. Ena takih storitev je FreeGeoIP.net.
Ponuja javni HTTP API za iskanje geolokacije naslovov IP. Uporablja bazo podatkov o naslovih IP, ki so povezani z mesti, ter druge ustrezne informacije, kot so časovni pas, zemljepisna širina in dolžina. To je zelo koristno.
Storitev lahko zagotavlja rezultate iskanja v obliki JSON ali XML. Torej, če kombiniramo curl z nekaj razčlenjevalnikom JSON, lahko dobimo zahtevane informacije.
kako odkleniti sidro v besedilu 2013
Uporabil bom svoj najljubši razčlenjevalnik JSON, jq:
Je zelo lahek in hiter.
V našem primeru naj bo poizvedba naslednja:
http://freegeoip.net/json/119.94.116.145
Tu je del json želeni format podatkov. Poleg JSON je to lahko tudi XML ali CSV.
Zaženimo poizvedbo z curl in si oglejte izhod:
Rezultat je surov izhod JSON, ki ga je težko prebrati. Za izboljšanje videza nabora rezultatov uporabimo orodje jq. Združite ga s kodrom, kot sledi:
curl http://freegeoip.net/json/119.94.116.145|jq
Izhod bo lažje prebrati:
Z uporabo jq lahko izhod filtrirate in prikažete samo zahtevana polja. Naslednji ukaz bo prikazal samo ime države, zemljepisno širino in dolžino:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.ime_države, .širina, .dolžina'
Ta ukaz lahko shranite kot naslednji skript lupine:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.ime_države, .širina, .dolžina'
Ko boste naslednjič morali dobiti podatke o geolokaciji, lahko svoj skript izvedete tako:
./geo.sh IP_address
To je to.