Das globale Dorf ist groß genug, um herausfinden zu wollen, wo Freund und Feind ihre Bauernhäuser stehen haben. Eine kleine IP-basierte Länderkunde.
Alle populären Distributionen haben ein oder mehrere Paket(e) an Bord, die das Heimatland einer IP-Adresse ermitteln. Auf meinem Test-Ubuntu nehme ich dafür die Pakete »geoip-bin« und »geoip-database« . Ab sofort gibt es auf der Kommandozeile die Befehle »geoiplookup« und für IPv6-Adressen »geoiplookup6« . Als Parameter erwartet der Befehl natürlich die IP-Adresse oder einen Namen:
$ geoiplookup linuxfoundation.org GeoIP Country Edition: US, United States
Für die meisten Zwecke reicht mir die Zuordnung der IP-Adresse zu einem Land: Meine Spamfilter ermitteln auf diese Weise täglich die Top 5 der Länder, aus denen am meisten Müllmail kommt. In Abbildung 1 ist es Deutschland, aber das dürfte daran liegen, dass ich den Screenshot an einem Sonntag gemacht habe. Unter der Woche ist Deutschland nur extrem selten in den Top 5 zu finden.
Wer eine höhere Auflösung braucht, also die IP-Adresse nicht nur einem Land, sondern einer Stadt, Region oder Organisation zuordnen möchte, greift auf Geo-IP-Daten kommerzieller Anbieter zurück. Das äußert sich auf ein abermaliges »geoiplookup linuxfoundation.org « etwa so:
GeoIP Country Edition:US, United States GeoIP City Edition, Rev 1: US, OR, Medford,N/A, 42.326500, -122.875603, 813, 541 GeoIP ASNum Edition: AS3701 Oregon JointGraduate Schools of Engineering
Für Webserver gibt es das Modul »libapache2_mod_geoip« . Damit schicke ich Benutzer anhand ihrer Herkunft zum passend lokalisierten Bereich der Site.

Abbildung 1: Deutschland ist Weltmeister! Zumindest an diesem denkwürdigen Sonntag und für Charlys Antispam-System mit eingebautem Geo-IP-Lookup.
Länder-Weiche
Dazu füge ich in der »httpd.conf« die folgenden Zeilen ein:
GeoIPEnable On GeoIPDBFile /usr/share/geoip/geoip.dat
Den Pfad muss der Webserver-Admin gegebenenfalls noch anpassen. In meine ».htaccess« -Datei hinein schreibe ich noch die Zeilen aus Listing 1.
Die Genauigkeit der Geodaten reicht fast immer aus, zumindest auf Länderebene. Ausnahmen bestätigen die Regel. Mobilfunkprovider routen den HTTP-Verkehr ihrer Kunden gerne durch Zwangsproxys. Je nach Netzauslastung steht ein solcher auch schon mal im benachbarten Ausland, was zu vermeintlichen Flüchtlingsströmen führt. (jk)
Listing 1
.htaccess
01 #IP-Adresse aus .de
02 RewriteEngine on
03 RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^DE$
04 RewriteRule ^(.*)$ http://www.example.com/de
05
06 #alle anderen auf die englische Seite:
07 RewriteEngine on
08 RewriteRule ^(.*)$ http://www.example.com/en/






