IP-Adressen lokalisieren mit Maxminds GeoIP

Samstag, 1. März 2014 | von PhilVanB | Englisch 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