IP-Adressen lokalisieren mit Maxminds GeoIP

Samstag, 1. März 2014 | von PhilVanB | Sprache wählen This article in english


Wenn dich im Bereich Webentwicklung das Lokalisieren von IP-Adressen interessiert, z. B. um den Herkunftsort der Besucher deiner Websites zu bestimmen, dann ist das hier genau der richtige Artikel. Vorausetzung ist, dass du ein Linux-Betriebssystem bzw. Server verwendest.



Als Erstes muss die GeoIP-Datenbank von Maxmind installiert werden. Dazu muss die Datei GeoLiteCity.dat heruntergeladen werden. Diese kann man unter folgender URL herunterladen: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

Die Datei mit der Archivverwaltung deiner Wahl entpacken. Dann im Ordner /usr/share/ auf deinem Linux-System einen neuen Ordner mit dem Namen GeoIP erstellen:

 

sudo mkdir -v /usr/share/GeoIP

 

Anschließend die entpackte GeoLIteCity.dat-Datei in das neu erstellte Verzeichnis verschieben:

 

sudo mv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

 

Mit diesem Befehl wird die Datei direkt umbenannt in GeoIPCity.dat. Es ist wichtig die Datei so umzubennenen. Anderenfalls würde das später zu einer Fehlermeldung führen. Die Lese- und Schreibrechte des GeoIP-Ordners auf 777 setzen:

 

sudo chmod 777 /usr/share/GeoIP -R

 

Im nächsten Schritt wird php-geoip installiert:

 

sudo apt-get install php5-geoip

 

Soweit alle Installationen. Jetzt zum Programmieren. Erstelle ein neues PHP-Skript auf deinem Server, z. B. eine PHP-Datei geoIPtest.php im Verzeichnis /var/www/

Der Code für diese Datei würde folgendermaßen aussehen:

 
$record = geoip_record_by_name('64.233.160.0');  

if($record) {

print_r($record);
}

 

Die IP-Adressen werden der Funktion geoip_record_by_name() als Parameter übergeben. Man kann auch eine URL wie www.google.com übergeben.

Das Skript geoIPtest.php sollte dann folgende Ausgabe erzeugen:

 
Array (

[continent_code] => NA
[country_code] => US
[country_code3] => USA
[country_name] => United States
[region] => CA
[city] => Mountain View
[postal_code] => 94043
[latitude] => 37.419200897217
[longitude] => -122.05740356445
[dma_code] => 807
[area_code] => 650
)

 

Auf diese Weise können durch Übergabe der IP-Adresse Informationen wie Postleitzahl, Stadt oder Landesname gewonnen werden.

Mehr nützliche Informationen zum Thema, wie eine Referenz über die bereitgestellten Funktionen, gibt es unter diesem Link: http://de2.php.net/manual/de/geoip.setup.php