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. Jis 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:
Tai labai lengvas ir greitas.
Mūsų atveju užklausa turėtų būti tokia:
|_+_|Dalis „json“ yra norimas duomenų formatas. Be JSON, tai gali būti XML arba CSV.
Paleiskite užklausą su curl ir pamatykime išvestį:
Rezultatas yra neapdorota JSON išvestis, kurią sunku perskaityti. Norėdami pagerinti rezultatų rinkinio išvaizdą, naudokite įrankį jq. Sujunkite jį su garbanomis taip:
|_+_|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ą:
|_+_|Šią komandą galite išsaugoti kaip šį apvalkalo scenarijų:
|_+_|Kitą kartą, kai reikės gauti geografinės vietos informaciją, scenarijų galite vykdyti taip:
|_+_|Viskas.