Noen ganger må du raskt få informasjon om geolokalisering for en IP-adresse. I Linux kan du bruke kraften til konsollapper for å spare tid og hente denne informasjonen raskt. La oss se hvordan det kan gjøres.
Annonse
For å få informasjon om geografisk plassering om en bestemt IP-adresse, må du bruke noen online-tjenester som gir riktig API. Det er en god ide å bruke noen offentlige tjenester for å unngå autorisasjonsprosedyren og API-nøkkeladministrasjon. En slik tjeneste er FreeGeoIP.net.
Det gir en offentlig HTTP API for å søke i geolokalisering av IP-adresser. Den bruker en database med IP-adresser som er tilknyttet byer sammen med annen relevant informasjon som tidssone, breddegrad og lengdegrad. Dette er veldig nyttig.
Tjenesten kan gi søkeresultater som JSON eller XML. Så hvis vi kombinerer krøll med en JSON-parser, kan vi få den nødvendige informasjonen.
hvordan du legger til bot i uoverensstemmelse
Jeg vil bruke min favoritt JSON parser, jq:
Det er veldig lett og raskt.
For vårt tilfelle bør spørringen være som følger:
http://freegeoip.net/json/119.94.116.145
'Json'-delen her er ønsket dataformat. Foruten JSON, kan det være XML eller CSV.
La oss kjøre spørringen med krøll og se utdataene:
Resultatet er rå JSON-utgang som er vanskelig å lese. For å forbedre utseendet til resultatsettet, la oss bruke jq-verktøyet. Kombiner den med krøll på følgende måte:
krølle http://freegeoip.net/json/119.94.116.145|jq
Resultatet blir lettere å lese:
Ved hjelp av jq kan du filtrere utdataene og få den til å bare vise de nødvendige feltene. Følgende kommando viser bare landets navn, breddegrad og lengdegrad:
krølle http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Du kan lagre denne kommandoen som følgende skallskript:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Neste gang du trenger å få informasjon om geolokalisering, kan du utføre skriptet ditt slik:
./geo.sh IP_adresse
Det er det.