Tietyn IP-osoitteen maantieteellisen sijainnin saamiseksi sinun on käytettävä jotakin verkkopalvelua, joka tarjoaa sopivan API:n. On hyvä idea käyttää jotain julkista palvelua valtuutusmenettelyn ja API-avainten hallinnan välttämiseksi. Yksi tällainen palvelu on FreeGeoIP.net.
Se tarjoaa julkisen HTTP-sovellusliittymän IP-osoitteiden maantieteellisen sijainnin etsimiseen. Se käyttää tietokantaa IP-osoitteista, jotka liittyvät kaupunkeihin, sekä muita asiaankuuluvia tietoja, kuten aikavyöhykettä, leveys- ja pituusaste. Tämä on erittäin hyödyllistä.
Palvelu voi tarjota hakutuloksia JSON- tai XML-muodossa. Joten jos yhdistämme curlin johonkin JSON-jäsennykseen, voimme saada tarvittavat tiedot.
Käytän suosikki JSON-jäsentäni, jq:
Se on erittäin kevyt ja nopea.
Meidän tapauksessamme kyselyn tulisi olla seuraava:
|_+_|'Json'-osio tässä on haluttu tietomuoto. JSONin lisäksi se voi olla XML tai CSV.
Suoritetaan kysely curlilla ja katsotaan tulos:
Tuloksena on raaka JSON-tulostus, jota on vaikea lukea. Tulosjoukon ulkonäön parantamiseksi käytetään jq-työkalua. Yhdistä se kiharan kanssa seuraavasti:
|_+_|Tuloste on helpompi lukea:
Käyttämällä jq:ta voit suodattaa tulosteen ja saada sen näyttämään vain vaaditut kentät. Seuraava komento näyttää vain maan nimen, leveysasteen ja pituusasteen:
|_+_|Voit tallentaa tämän komennon seuraavana komentotulkkikomentosarjana:
|_+_|Kun seuraavan kerran tarvitset maantieteellisiä sijaintitietoja, voit suorittaa komentosarjan seuraavasti:
|_+_|Se siitä.