Slik gjør du IP-adresse Geolocation Lookups på Linux
Du har sikkert lagt merke til ulike tjenester på Internett som automatisk vet omtrent hvor du er i verden. Fra musikk- og videostrømtjenester til nettbutikker bruker disse tjenestene en teknikk, kalt IP-geolokasjon, som samsvarer med din omtrentlige fysiske plassering med IP-adressen du bruker. Når du kobler deg til Internett, tilordnes enheten en IP-adresse fra et basseng av adresser som er tildelt de forskjellige telekommunikasjonsbedriftene. Måten disse adressene fungerer på, kan være ganske komplisert, men fordi de er tildelt i blokker, er det mulig å bygge en database som kartlegger en adresseblokk til et land eller til og med et bestemt område eller en by.
Den gode nyheten er at å gjøre disse geolocation-oppslagene ikke bare for de store bedriftene og mega-nettstedene. Det finnes en rekke gratis online-tjenester og til og med et kommandolinjeverktøy for Linux som lar deg slå opp IP-adresser og få informasjon om hvor adressen er tildelt. Dette kan være svært nyttig når du undersøker en mistenkelig e-post eller merkelige kommentarer igjen på en blogg. Det er også nyttig når du bruker tjenester som maskerer din IP-adresse, som et VPN, for å sikre at de jobber som annonsert.
For å slå opp en IP-adresse fra Linux-kommandolinjen, må du installere "geoiplookup" -verktøyet. For Ubuntu og Raspbian bruk:
sudo apt-get install geoip-bin
Hvis du vil slå opp en IP-adresse, skriver du inn følgende:
geoiplookup 8.8.4.4
Erstatt 8.8.4.4 med adressen du vil slå opp. I dette eksemplet er adressen 8.8.4.4 (som er en av Googles DNS-servere) korrekt rapportert som en adresse fra USA.
Databasen som leveres med Linux-distribusjonen din, er trolig utdatert. Du kan sjekke for å se når den ble opprettet ved hjelp av -v
flagget:
geoiplookup -v 8.8.4.4
I dette tilfellet ser vi at databasen ble opprettet i august 2013.
Geolocation-databasen leveres av MaxMind, og selskapet oppdaterer sine databaser hver måned. Du kan oppdatere databasen ved å laste ned de nyeste filene direkte fra MaxMind.com.
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz gunzip GeoIP.dat.gz sudo cp GeoIP.dat / usr / del / GeoIP /
Du kan nå spørre databasen igjen for byggedato:
geoiplookup -v 8.8.4.4
Verktøyet rapporterer nå at databasen ble opprettet i april 2014.
MaxMind gir også en bydatabase, som i mange tilfeller gir større nøyaktighet. For å installere det, bruk følgende kommandoer for å laste ned databasen og kopiere den til GeoIP-katalogen:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip GeoLiteCity.dat.gz sudo cp GeoLiteCity.dat / usr / del / GeoIP /
For å få informasjon om byen, må du fortelle " geoiplookup
" -verktøyet for å bruke geoiplookup
:
geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 71.3.9.242
Denne gangen forteller geoiplookup oss adressen er i Florida og mer spesifikt i Summerfield, Florida.
Online service
I tillegg til geoiplookup-verktøyet finnes det en rekke online-tjenester som kan gi geolokaliseringsinformasjon. Hvis du for eksempel åpner geoiptool.com i nettleseren din, vil nettstedet gi deg informasjon om din nåværende plassering.
Et annet nettsted freegeoip.net har en API som er designet for å bli brukt i backend av nettsteder eller fra applikasjoner. Det kan imidlertid også brukes fra kommandolinjen ved å bruke " curl
." Først må du sørge for at du har " curl
" installert:
sudo apt-get install krøll
For å få informasjon om geolokalisering i XML-format, bruk:
krølle freegeoip.net/xml/72.4.9.242
XML-utgangen viser at IP-adressen 72.4.9.242 brukes i Evansville, Indiana. Du kan også få de samme dataene i CSV- eller JSON-format ved å endre "xml" -delen av nettadressen til henholdsvis "csv" eller "json".
Geoiplookup-verktøyet og de elektroniske tjenestene kan være svært nyttige. Hvis du har spørsmål om bruk av dem, vennligst spørg i kommentarfeltet nedenfor.