Start · Sprachen · PHP · Referenz · geoip_continent_code_by_name

geoip_continent_code_by_name

Funktion

Gibt den zweistelligen Kontinentcode für einen Hostnamen oder eine IP-Adresse zurück.

seit PHP 1.0.0 Kategorie: misc

Signatur

geoip_continent_code_by_name(string $hostname): string

Beschreibung

Die Funktion geoip_continent_code_by_name() ist Teil der GeoIP-PECL-Erweiterung und ermittelt anhand eines Hostnamens oder einer IPv4-Adresse den zweistelligen Kontinentcode gemäß der MaxMind-GeoIP-Datenbank.

Die zurückgegebenen Codes entsprechen den gängigen geographischen Abkürzungen: AF (Afrika), AN (Antarktis), AS (Asien), EU (Europa), NA (Nordamerika), OC (Ozeanien) und SA (Südamerika). Diese Funktion ist nützlich, wenn Inhalte nach Großregionen gefiltert, Nutzer in kontinentabhängige Preismodelle eingruppiert oder einfache Geo-Weiterleitungen implementiert werden sollen.

Voraussetzung für den Betrieb ist eine installierte GeoIP-PECL-Erweiterung sowie eine aktuelle MaxMind-Datenbank (z. B. GeoIP.dat). Wird kein Eintrag für die angegebene Adresse gefunden oder ist die Erweiterung nicht verfügbar, gibt die Funktion false zurück.

Für IPv6-Adressen oder präzisere Geolokalisation (Land, Stadt) stehen verwandte Funktionen wie geoip_country_code_by_name() oder geoip_record_by_name() zur Verfügung.

Parameter

Name Typ Default Beschreibung
$hostname Pflicht string Hostname oder IPv4-Adresse, für die der Kontinentcode ermittelt werden soll. Beispiel: 'www.example.de' oder '93.184.216.34'.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den zweistelligen Kontinentcode als Zeichenkette zurück (z. B. 'EU' für Europa) oder false, wenn der Hostname nicht aufgelöst werden konnte oder kein Eintrag in der Datenbank existiert.

Beispiele

Kontinentcode einer IP-Adresse ermitteln

<?php
// Voraussetzung: GeoIP-PECL-Erweiterung und Datenbank sind installiert
$ip = '93.184.216.34'; // Beispiel-IP (example.com)
$code = geoip_continent_code_by_name($ip);

if ($code !== false) {
    echo "Kontinentcode: " . $code . "\n";
} else {
    echo "Kein Eintrag für diese IP gefunden.\n";
}
Kontinentcode: NA

Nutzer anhand des Kontinents weiterleiten

<?php
$userIp = $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1';
$continent = geoip_continent_code_by_name($userIp);

$redirectMap = [
    'EU' => 'https://europe.example.com',
    'NA' => 'https://northamerica.example.com',
    'AS' => 'https://asia.example.com',
];

if ($continent && isset($redirectMap[$continent])) {
    header('Location: ' . $redirectMap[$continent]);
    exit;
} else {
    echo "Standardseite wird angezeigt.";
}

// Wichtig · Fallstricke

Veraltete Erweiterung: Die GeoIP-PECL-Erweiterung gilt als veraltet und wird nicht aktiv weiterentwickelt. Für neue Projekte empfiehlt sich die Verwendung moderner Alternativen wie MaxMind GeoIP2 PHP API in Kombination mit der GeoLite2-Datenbank.

Datenbankaktualität: Die Genauigkeit der Ergebnisse hängt stark vom Aktualitätsdatum der verwendeten MaxMind-Datenbank ab. Veraltete Datenbanken können zu fehlerhaften Zuordnungen führen.

Datenschutz: IP-Adressen gelten in vielen Rechtsordnungen (z. B. DSGVO) als personenbezogene Daten. Die Verarbeitung sollte entsprechend dokumentiert und gerechtfertigt sein.

DNS-Auflösung: Wird ein Hostname statt einer IP-Adresse übergeben, führt die Funktion intern eine DNS-Auflösung durch, was zu Latenzen führen kann.