Kartais reikia greitai gauti IP adreso geografinės vietos informaciją. Sistemoje „Linux“ galite naudoti konsolės programų galią, kad sutaupytumėte laiko ir greitai gautumėte šią informaciją. Pažiūrėkime, kaip tai galima padaryti.
Reklama
Norėdami gauti geografinės vietos informaciją apie konkretų IP adresą, turite naudoti internetinę paslaugą, teikiančią tinkamą API. Geriausia naudoti kai kurias viešąsias paslaugas, kad būtų išvengta autorizavimo procedūros ir API rakto valdymo. Viena tokių paslaugų yra FreeGeoIP.net.
Jis teikia viešą HTTP API, skirtą ieškoti IP adresų geografinės vietos. Ji naudoja su miestais susietų IP adresų duomenų bazę kartu su kita svarbia informacija, pvz., Laiko juosta, platuma ir ilguma. Tai labai naudinga.
Paslauga gali pateikti paieškos rezultatus kaip JSON arba XML. Taigi, jei sujungsime garbanojimą su JSON analizatoriumi, galime gauti reikiamą informaciją.
kaip pridėti dainas į snapchat
Aš naudosiu savo mėgstamą JSON analizatorių, jq:
Tai labai lengvas ir greitas.
Mūsų atveju užklausa turėtų būti tokia:
http://freegeoip.net/json/119.94.116.145
„Json“ dalis yra norimas duomenų formatas. Be JSON, tai gali būti XML arba CSV.
Paleiskime užklausą su garbanomis ir pamatykime išvestį:
Rezultatas yra neapdorota JSON išvestis, kurią sunku perskaityti. Norėdami pagerinti rezultatų rinkinio išvaizdą, naudokime įrankį jq. Derinkite jį su garbanomis taip:
garbanotis http://freegeoip.net/json/119.94.116.145|jq
Išvestį bus lengviau perskaityti:
Naudodami jq, galite išfiltruoti išvestį ir leisti jai rodyti tik būtinus laukus. Ši komanda parodys tik šalies pavadinimą, platumą ir ilgumą:
garbanos http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Galite išsaugoti šią komandą kaip šį apvalkalo scenarijų:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Kitą kartą, kai reikės gauti geografinės vietos informacijos, scenarijų galite vykdyti taip:
./geo.sh IP_adresas
Viskas.