Start · Sprachen · PHP · Referenz · geoip_netspeedcell_by_name

geoip_netspeedcell_by_name

Funktion

Liefert die Netzgeschwindigkeitskategorie (z. B. <code>Cable/DSL</code>, <code>Dialup</code>) für einen Hostnamen oder eine IP-Adresse anhand der GeoIP-Datenbank.

Kategorie: misc

Signatur

geoip_netspeedcell_by_name(string $hostname): string|false

Beschreibung

geoip_netspeedcell_by_name() fragt die GeoIP-Datenbank ab und gibt eine textuelle Beschreibung der Internetverbindungsgeschwindigkeit zurück, die dem angegebenen Hostnamen oder der IP-Adresse zugeordnet ist. Typische Rückgabewerte sind Dialup, Cable/DSL, Corporate oder Cellular.

Die Funktion ist Teil der PECL-Erweiterung geoip und setzt eine gültige, lokal installierte GeoIP-Datenbank (NetSpeed-Edition) von MaxMind voraus. Sie eignet sich für Anwendungsfälle, bei denen das Nutzerverhalten oder die Auslieferung von Inhalten (z. B. Videos in unterschiedlicher Qualität) an die verfügbare Bandbreite angepasst werden soll.

Im Unterschied zu geoip_netspeed_by_name(), das einen numerischen Code zurückgibt, liefert geoip_netspeedcell_by_name() eine leicht lesbare Zeichenkette, die direkt für Anzeigezwecke oder einfache Vergleiche verwendet werden kann.

Beachte, dass die Genauigkeit stark von der Aktualität der verwendeten GeoIP-Datenbank abhängt und die Ergebnisse je nach Netzwerktopologie ungenau sein können.

Parameter

Name Typ Default Beschreibung
$hostname Pflicht string Der Hostname oder die IPv4-Adresse, für die die Verbindungsgeschwindigkeit ermittelt werden soll. Beispielsweise 'example.com' oder '93.184.216.34'.

Rückgabewert

Typ
string|false
Beschreibung
Gibt eine Zeichenkette zurück, die die Verbindungsgeschwindigkeit beschreibt (z. B. 'Cable/DSL', 'Dialup', 'Corporate', 'Cellular'). Gibt false zurück, wenn der Hostname nicht aufgelöst werden konnte oder kein Eintrag in der Datenbank gefunden wurde.

Beispiele

Verbindungsgeschwindigkeit eines Besuchers ermitteln

<?php
// IP-Adresse des Besuchers aus dem Server-Array
$ip = $_SERVER['REMOTE_ADDR'] ?? '8.8.8.8';

$netspeed = geoip_netspeedcell_by_name($ip);

if ($netspeed !== false) {
    echo 'Erkannte Verbindungsgeschwindigkeit: ' . htmlspecialchars($netspeed);
} else {
    echo 'Verbindungsgeschwindigkeit konnte nicht ermittelt werden.';
}
Erkannte Verbindungsgeschwindigkeit: Cable/DSL

Inhalte basierend auf Verbindungsgeschwindigkeit anpassen

<?php
$ip = '93.184.216.34';
$netspeed = geoip_netspeedcell_by_name($ip);

switch ($netspeed) {
    case 'Dialup':
        echo 'Niedrig aufgelöstes Video wird geladen...';
        break;
    case 'Cable/DSL':
    case 'Corporate':
        echo 'Hoch aufgelöstes Video wird geladen...';
        break;
    case 'Cellular':
        echo 'Mobiloptimiertes Video wird geladen...';
        break;
    default:
        echo 'Standard-Video wird geladen...';
        break;
}
Hoch aufgelöstes Video wird geladen...

// Wichtig · Fallstricke

Voraussetzungen: Die PECL-Erweiterung geoip muss installiert und eine kompatible GeoIP-NetSpeedCell-Datenbank von MaxMind muss lokal verfügbar sein. Ohne die korrekte Datenbankdatei gibt die Funktion stets false zurück.

Genauigkeit: GeoIP-Daten sind Annäherungswerte und können veraltet oder ungenau sein. Kritische Geschäftsentscheidungen sollten nicht ausschließlich auf diesen Daten basieren.

IPv6: Die Unterstützung für IPv6-Adressen hängt von der verwendeten Datenbankversion und der Version der GeoIP-Erweiterung ab. Im Zweifel nur IPv4-Adressen verwenden.

Datenschutz: IP-Adressen gelten in vielen Ländern als personenbezogene Daten. Die Verarbeitung muss in Übereinstimmung mit der DSGVO oder anderen geltenden Datenschutzgesetzen erfolgen.