Nogle gange er du nødt til hurtigt at få oplysninger om geolokalisering til en IP-adresse. I Linux kan du bruge styrken i konsolapps til at spare tid og hente disse oplysninger hurtigt. Lad os se, hvordan det kan gøres.
Annoncering
For at få oplysninger om geografisk placering om en bestemt IP-adresse skal du bruge en onlinetjeneste, der leverer den passende API. Det er en god ide at bruge nogle offentlige tjenester for at undgå godkendelsesproceduren og API-nøglehåndtering. En sådan tjeneste er FreeGeoIP.net.
Det giver en offentlig HTTP API til at søge i geolokalisering af IP-adresser. Det bruger en database med IP-adresser, der er forbundet med byer sammen med andre relevante oplysninger som tidszone, breddegrad og længdegrad. Dette er meget nyttigt.
Tjenesten kan levere søgeresultater som JSON eller XML. Så hvis vi kombinerer krøller med en eller anden JSON-parser, kan vi få den nødvendige info.
firestick opretter ikke forbindelse til wifi
Jeg vil bruge min yndlings JSON parser, jq:
Det er meget let og hurtigt.
For vores sag skal forespørgslen være som følger:
http://freegeoip.net/json/119.94.116.145
'Json'-delen her er det ønskede dataformat. Udover JSON kan det være XML eller CSV.
Lad os køre forespørgslen med krølle og se output:
Resultatet er rå JSON-output, som er svær at læse. Lad os bruge jq-værktøjet for at forbedre resultatsættets udseende. Kombiner det med krølle som følger:
krølle http://freegeoip.net/json/119.94.116.145|jq
Outputtet bliver lettere at læse:
Ved hjælp af jq kan du filtrere output og få det til kun at vise de krævede felter. Følgende kommando viser kun landets navn, bredde og længdegrad:
krølle http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Du kan gemme denne kommando som følgende shell-script:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Næste gang du har brug for at få oplysninger om geografisk placering, kan du udføre dit script således:
./geo.sh IP_adresse
Det er det.