Du har sikkert bemærket forskellige tjenester på internettet, som automatisk ved, hvor stort du er i verden. Fra musik- og videostream-tjenester til onlinebutikker bruger disse tjenester en teknik, kaldet IP-geolocation, som matcher din omtrentlige fysiske placering med den IP-adresse, du bruger. Når du opretter forbindelse til internettet, tildeles din enhed en IP-adresse fra en pulje af adresser, der er tildelt de forskellige telekommunikationsselskaber. Måden de adresserer på, kan være ret kompliceret, men fordi de er tildelt i blokke, er det muligt at opbygge en database, der kortlægger en blok adresser til et land eller endda et bestemt område eller en by.

Den gode nyhed er, at at gøre disse geolocation opslag er ikke kun for de store corporate og mega hjemmesider. Der er en række gratis online-tjenester og endda et kommandolinjeværktøj til Linux, som giver dig mulighed for at søge efter IP-adresser og få oplysninger om, hvor adressen er tildelt. Dette kan være meget nyttigt, når du undersøger en mistænkelig e-mail eller mærkelige kommentarer tilbage på en blog. Det er også nyttigt, når du bruger tjenester, der maskerer din IP-adresse, som en VPN, for at sikre, at de fungerer som annonceret.

For at finde en IP-adresse fra Linux-kommandolinjen, skal du installere værktøjet "geoiplookup". Til Ubuntu og Raspbian brug:

 sudo apt-get install geoip-bin 

For at finde en IP-adresse skal du skrive følgende:

 geoiplookup 8.8.4.4 

Udskift 8.8.4.4 med den adresse, du vil kigge op. I dette eksempel er adressen 8.8.4.4 (som er en af ​​Googles DNS-servere) korrekt rapporteret som en adresse fra USA.

Databasen, der leveres med din Linux-distribution, er formentlig forældet; Du kan tjekke for at se, hvornår den blev oprettet ved hjælp af -v flag:

 geoiplookup -v 8.8.4.4 

I dette tilfælde ser vi, at databasen blev oprettet i august 2013.

Geolocation-databasen leveres af MaxMind, og virksomheden opdaterer sine databaser hver måned. Du kan opdatere databasen ved at downloade de nyeste filer 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 nu forespørge databasen igen for dens byggedato:

 geoiplookup -v 8.8.4.4 

Værktøjet rapporterer nu, at databasen blev oprettet i april 2014.

MaxMind giver også en bydatabase, som i mange tilfælde giver større nøjagtighed. For at installere det skal du bruge følgende kommandoer til at downloade databasen og kopiere den til GeoIP-mappen:

 wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip GeoLiteCity.dat.gz sudo cp GeoLiteCity.dat / usr / share / GeoIP / 

For at få oplysninger om byen skal du fortælle værktøjet " geoiplookup " for at bruge byens database:

 geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 71.3.9.242 

Denne gang fortæller geoiplookup os adressen er i Florida og mere specifikt i Summerfield, Florida.

Onlinetjeneste

Ud over geoiplookup-værktøjet findes der en række onlinetjenester, der kan give geolocation-oplysninger. Hvis du for eksempel åbner geoiptool.com i din webbrowser, vil webstedet give dig oplysninger om din nuværende placering.

Et andet websted freegeoip.net har en API, der er designet til at blive brugt i backend på hjemmesider eller indenfor applikationer. Det kan dog også bruges fra kommandolinjen ved hjælp af " curl ." Først skal du sikre dig at du har " curl " installeret:

 sudo apt-get install krølle 

For at få geolocation oplysninger i XML-format, brug:

 curl freegeoip.net/xml/72.4.9.242 

XML-output afslører, at IP-adressen 72.4.9.242 bruges i Evansville, Indiana. Du kan også få de samme data i CSV- eller JSON-format ved at ændre "xml" -delen af ​​webadressen til henholdsvis "csv" eller "json".

Geoiplookup-værktøjet og onlinetjenesterne kan være meget nyttige. Hvis du har spørgsmål om at bruge dem, så spørg i kommentarfeltet nedenfor.