Start · Sprachen · PHP · Referenz · geoip_database_info

geoip_database_info

Funktion

Gibt Informationen (z. B. Versionsnummer und Erstellungsdatum) zu einer installierten GeoIP-Datenbank zurück.

seit PHP 5.1.0 Kategorie: misc

Signatur

geoip_database_info(int $database = GEOIP_COUNTRY_EDITION): string|false

Beschreibung

geoip_database_info() gehört zur GeoIP-Erweiterung (PECL) und liefert einen beschreibenden Informationsstring zur angegebenen GeoIP-Datenbankdatei. Dieser String enthält typischerweise den Namen der Datenbank, die Build-Version sowie das Erstellungsdatum der MaxMind-Datenbankdatei.

Die Funktion ist nützlich, um zur Laufzeit zu prüfen, welche Version der GeoIP-Datenbank aktuell geladen ist, und um sicherzustellen, dass die Daten aktuell genug für den jeweiligen Anwendungsfall sind (z. B. monatliche Aktualisierungen der GeoLite-Datenbank).

Als Parameter wird eine der vordefinierten GeoIP-Datenbankkonstanten übergeben, z. B. GEOIP_COUNTRY_EDITION, GEOIP_CITY_EDITION_REV1 oder GEOIP_ASNUM_EDITION. Wird kein Parameter übergeben, wird standardmäßig die Länder-Edition verwendet.

Ist die angeforderte Datenbank nicht vorhanden oder nicht lesbar, gibt die Funktion false zurück.

Parameter

Name Typ Default Beschreibung
$database int GEOIP_COUNTRY_EDITION Eine der vordefinierten GeoIP-Datenbankkonstanten, z. B. GEOIP_COUNTRY_EDITION, GEOIP_CITY_EDITION_REV1, GEOIP_ORG_EDITION oder GEOIP_ASNUM_EDITION. Gibt an, welche Datenbankdatei abgefragt werden soll.

Rückgabewert

Typ
string|false
Beschreibung
Gibt einen String mit den Informationen zur Datenbank zurück (Name, Version, Build-Datum). Ist die Datenbank nicht verfügbar oder nicht lesbar, wird false zurückgegeben.

Beispiele

Versionsinformationen der Länder-Datenbank ausgeben

<?php
// Standardmäßig wird GEOIP_COUNTRY_EDITION abgefragt
$info = geoip_database_info();

if ($info !== false) {
    echo 'GeoIP-Datenbankinfo: ' . $info . PHP_EOL;
} else {
    echo 'Datenbank nicht verfügbar.' . PHP_EOL;
}
GeoIP-Datenbankinfo: GEO-106FREE 20230801 Build 1 Copyright (c) 2023 MaxMind Inc All Rights Reserved

Informationen zur City-Datenbank abrufen

<?php
// Informationen zur City-Edition (Rev1) abrufen
$info = geoip_database_info(GEOIP_CITY_EDITION_REV1);

if ($info !== false) {
    echo 'City-Datenbankinfo: ' . $info . PHP_EOL;
} else {
    echo 'City-Datenbank nicht installiert oder nicht lesbar.' . PHP_EOL;
}
City-Datenbankinfo: GEO-533LITE 20230801 Build 1 Copyright (c) 2023 MaxMind Inc All Rights Reserved

Alle verfügbaren Datenbanken überprüfen

<?php
$datenbanken = [
    'Country'  => GEOIP_COUNTRY_EDITION,
    'City Rev1' => GEOIP_CITY_EDITION_REV1,
    'ASN'      => GEOIP_ASNUM_EDITION,
    'Org'      => GEOIP_ORG_EDITION,
];

foreach ($datenbanken as $name => $konstante) {
    $info = geoip_database_info($konstante);
    if ($info !== false) {
        echo "[$name] $info" . PHP_EOL;
    } else {
        echo "[$name] nicht verfügbar" . PHP_EOL;
    }
}
[Country] GEO-106FREE 20230801 Build 1 Copyright (c) 2023 MaxMind Inc All Rights Reserved [City Rev1] nicht verfügbar [ASN] nicht verfügbar [Org] nicht verfügbar

// Wichtig · Fallstricke

Hinweis zur Erweiterung: geoip_database_info() ist Teil der PECL-Erweiterung geoip und nicht in der PHP-Standardinstallation enthalten. Die Erweiterung muss separat installiert und in der php.ini aktiviert werden.

End-of-Life: MaxMind hat das ältere GeoIP-Legacy-Datenbankformat (das von dieser PECL-Erweiterung verwendet wird) zugunsten von GeoIP2/GeoLite2 abgekündigt. Für neue Projekte wird die Verwendung der offiziellen MaxMind GeoIP2-PHP-Bibliothek mit dem MMDB-Format empfohlen.

Datenbankaktualität: GeoIP-Daten veralten schnell. Es empfiehlt sich, die Datenbank mindestens monatlich zu aktualisieren und den Rückgabewert dieser Funktion zu nutzen, um das Build-Datum programmatisch zu prüfen.