- Veröffentlicht am
- • Open Source Projekte
Was ist geoip2?
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-

Die PHP-Bibliothek geoip2/geoip2
ist ein offizielles SDK von MaxMind, einem Anbieter von Geolokalisierungsdiensten. Mit dieser Bibliothek kannst du IP-Adressen analysieren und daraus geografische Informationen wie Land, Stadt, Region oder sogar Breitengrad und Längengrad extrahieren.
Sie basiert auf den GeoIP2-Datenbanken von MaxMind, die es in einer kostenlosen Lite-Variante (GeoLite2) und einer kommerziellen Variante gibt.
Wofür kann man GeoIP2 verwenden?
Typische Anwendungsfälle:
- Automatische Sprachauswahl auf Websites basierend auf dem Land des Besuchers
- Schutz vor verdächtigen Zugriffen aus bestimmten Regionen
- Regionale Inhalte oder Preise anzeigen
- Statistische Auswertungen zum Herkunftsland der Nutzer
Installation
Am einfachsten installierst du das Paket über Composer:
composer require geoip2/geoip2
Zusätzlich benötigst du die passende GeoIP2-Datenbankdatei (z. B. GeoLite2-City.mmdb
), die du nach Registrierung kostenlos von MaxMind herunterladen kannst:
https://dev.maxmind.com/geoip/geolite2/
Nutzung der Bibliothek
Hier ein Beispiel zur Bestimmung von Stadt und Land anhand einer IP-Adresse:
<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;
// Reader-Objekt mit Pfad zur .mmdb-Datenbank
$reader = new Reader('/pfad/zur/GeoLite2-City.mmdb');
// Beispiel-IP-Adresse
$ipAddress = $_SERVER['REMOTE_ADDR'];
try {
$record = $reader->city($ipAddress);
echo "Land: " . $record->country->name . "<br>";
echo "Stadt: " . $record->city->name . "<br>";
echo "Postleitzahl: " . $record->postal->code . "<br>";
echo "Koordinaten: " . $record->location->latitude . ", " . $record->location->longitude;
} catch (GeoIp2\Exception\AddressNotFoundException $e) {
echo "IP-Adresse konnte nicht lokalisiert werden.";
}
Unterstützte Datenbanken
Die Bibliothek kann verschiedene Datenbanktypen lesen:
- GeoLite2-Country.mmdb – nur Länderinformationen
- GeoLite2-City.mmdb – Länder-, Städte- und Koordinateninformationen
- GeoIP2-ISP.mmdb – Informationen zum Internetanbieter (kommerziell)
Tipps zur Nutzung
- Die Genauigkeit hängt stark von der Datenbankversion ab. Für präzisere Geodaten empfiehlt sich die kommerzielle GeoIP2-Variante.
- Die GeoLite2-Datenbanken müssen regelmäßig aktualisiert werden – MaxMind bietet dafür automatische Updates via Cronjob oder API-Key.
- Bei Cloudflare oder Loadbalancern sollte man auf den richtigen IP-Header achten (z. B.
$_SERVER['HTTP_X_FORWARDED_FOR']
).
Fazit
geoip2/geoip2
ist eine einfache, aber leistungsfähige PHP-Bibliothek, um geografische Informationen aus IP-Adressen zu extrahieren. Sie eignet sich hervorragend für personalisierte Inhalte, Sicherheitsmechanismen und Standortanalysen – und ist mit der GeoLite2-Datenbank sogar kostenlos einsetzbar.