Hur man gör IP-adress Geolocation Lookups på Linux
Du har säkert märkt olika tjänster på Internet som automatiskt vet ungefär var du befinner dig i världen. Från tjänster till musik och videoström till nätbutiker använder dessa tjänster en teknik, kallad IP-geolocation, som matchar din ungefärliga fysiska plats med den IP-adress du använder. När du ansluter till Internet har din enhet tilldelats en IP-adress från en adressportal som tilldelas de olika telekommunikationsbolagen. Hur dessa adresser fungerar kan vara ganska komplicerade, men eftersom de är tilldelade i block är det möjligt att bygga en databas som kartlägger ett adressblock till ett land eller till och med ett visst område eller stad.
Den goda nyheten är att det är inte bara de stora företagens och megas hemsidor att göra dessa geolocation-uppslag. Det finns ett antal gratis online-tjänster och till och med ett kommandoradsverktyg för Linux som gör att du kan leta upp IP-adresser och få information om var den adressen är tilldelad. Det här kan vara mycket användbart när du undersöker ett misstänkt e-postmeddelande eller konstiga kommentarer kvar på en blogg. Det är också användbart när du använder tjänster som maskerar din IP-adress, som en VPN, för att se till att de fungerar som annonserade.
För att leta upp en IP-adress från Linux-kommandoraden måste du installera "geoiplookup" -verktyget. För Ubuntu och Raspbian användning:
sudo apt-get installera geoip-bin
Om du vill söka upp en IP-adress skriver du följande:
geoiplookup 8.8.4.4
Ersätt 8.8.4.4 med adressen du vill leta upp. I detta exempel rapporteras adressen 8.8.4.4 (som är en av Googles DNS-servrar) korrekt som en adress från USA.
Databasen som levereras med din Linux-distribution är förmodligen föråldrad; Du kan kolla för att se när den skapades med -v
flaggan:
geoiplookup -v 8.8.4.4
I det här fallet ser vi att databasen skapades i augusti 2013.
Geolocation-databasen tillhandahålls av MaxMind, och företaget uppdaterar sina databaser varje månad. Du kan uppdatera databasen genom att hämta de senaste filerna direkt från MaxMind.com.
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz gunzip GeoIP.dat.gz sudo cp GeoIP.dat / usr / dela / GeoIP /
Du kan nu fråga databasen igen för dess byggdatum:
geoiplookup -v 8.8.4.4
Verktyget rapporterar nu att databasen skapades i april 2014.
MaxMind ger också en staddatabas, vilket i många fall ger större noggrannhet. För att installera det, använd följande kommandon för att ladda ner databasen och kopiera den till GeoIP-katalogen:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip GeoLiteCity.dat.gz sudo cp GeoLiteCity.dat / usr / share / GeoIP /
För att få stadens information måste du berätta " geoiplookup
" -verktyget för att använda geoiplookup
:
geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 71.3.9.242
Den här gången säger geoiplookup oss adressen är i Florida och mer specifikt i Summerfield, Florida.
Onlinetjänst
Förutom geoiplookup-verktyget finns ett antal onlinetjänster som kan ge geolokaliseringsinformation. Om du till exempel öppnar geoiptool.com i din webbläsare, kommer webbplatsen att ge dig information om din nuvarande plats.
En annan webbplats freegeoip.net har ett API som är utformat för att användas i backend på webbplatser eller inom applikationer. Det kan dock också användas från kommandoraden med " curl
." Först, se till att du har " curl
" installerad:
sudo apt-get installera curl
För att få geolokaliseringsinformation i XML-format, använd:
curl freegeoip.net/xml/72.4.9.242
XML-utgången visar att IP-adressen 72.4.9.242 används i Evansville, Indiana. Du kan också få samma data i CSV- eller JSON-format genom att ändra "xml" -delen av webbadressen till "csv" respektive "json".
Geoiplookup-verktyget och onlinetjänsterna kan vara mycket användbara. Om du har några frågor om hur du använder dem, fråga i kommentarfältet nedan.