Signatur
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
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;
}
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;
}
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;
}
}
// 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.