Gaukite IP adreso geografinės vietos informaciją „Bash“ sistemoje „Linux“.
Kartais reikia greitai gauti IP adreso geografinės vietos informaciją. Sistemoje „Linux“ galite naudoti konsolinių programų galią, kad sutaupytumėte laiko ir greitai gautumėte šią informaciją. Pažiūrėkime, kaip tai galima padaryti.
Norėdami gauti geografinės vietos informaciją apie konkretų IP adresą, turite naudoti tam tikrą internetinę paslaugą, kuri teikia atitinkamą API. Norint išvengti įgaliojimų suteikimo procedūros ir API rakto valdymo, naudinga naudoti kai kurias viešąsias paslaugas. Viena iš tokių paslaugų yra FreeGeoIP.net.
Tai suteikia viešą HTTP API, leidžiančią ieškoti IP adresų geografinės vietos. Ji naudoja IP adresų, susietų su miestais, duomenų bazę ir kitą svarbią informaciją, pvz., laiko juostą, platumą ir ilgumą. Tai labai naudinga.
Paslauga gali pateikti paieškos rezultatus kaip JSON arba XML. Taigi, jei sujungsime curl su kokiu nors JSON analizatoriumi, galime gauti reikiamą informaciją.
Aš naudosiu savo mėgstamą JSON analizatorių, jq:
Mūsų atveju užklausa turėtų būti tokia:
http://freegeoip.net/json/119.94.116.145
Dalis „json“ yra norimas duomenų formatas. Be JSON, tai gali būti XML arba CSV.
Paleiskite užklausą su curl ir pamatykime išvestį:
garbanoti http://freegeoip.net/json/119.94.116.145|jq
Išvestį bus lengviau perskaityti:
Naudodami jq galite filtruoti išvestį ir padaryti ją tik reikiamus laukus. Ši komanda parodys tik šalies pavadinimą, platumą ir ilgumą:
garbanoti http://freegeoip.net/json/119.94.116.145|jq -r '.šalies_pavadinimas,.platuma,.ilguma'
#!/bin/sh. garbanos -s http://freegeoip.net/json/$1|jq -r '.šalies_pavadinimas,.platuma,.ilguma'
Kitą kartą, kai reikės gauti geografinės vietos informaciją, scenarijų galite vykdyti taip:
./geo.sh IP_adresas
Viskas.