Aus Linux-Magazin 09/2012

Aus dem Alltag eines Sysadmin: Geo-IP-Lookup

© Alexander Makarov, 123RF.com

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.

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/

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben