Hanki IP-osoitteen maantieteellinen sijainti Bashissa Linuxissa
Joskus sinun on saatava IP-osoitteen paikkatiedot nopeasti. Linuxissa voit säästää aikaasi ja noutaa nämä tiedot nopeasti käyttämällä konsolisovellusten tehoa. Katsotaan kuinka se voidaan tehdä.
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:
Meidän tapauksessamme kyselyn tulisi olla seuraava:
http://freegeoip.net/json/119.94.116.145
"Json"-osio tässä on haluttu tietomuoto. JSONin lisäksi se voi olla XML tai CSV.
Suoritetaan kysely curlilla ja katsotaan tulos:
kiemura http://freegeoip.net/json/119.94.116.145|jq
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:
kiemura http://freegeoip.net/json/119.94.116.145|jq -r '.maan_nimi,.leveysaste,.pituusaste'
#!/bin/sh. curl -s http://freegeoip.net/json/$1|jq -r '.maan_nimi,.leveysaste,.pituusaste'
Seuraavan kerran, kun tarvitset maantieteellisiä sijaintitietoja, voit suorittaa komentosarjan seuraavasti:
./geo.sh IP_osoite
Se siitä.