To quickly know which databases are available on your system:
<?php
$cst = array(
'GEOIP_COUNTRY_EDITION' => GEOIP_COUNTRY_EDITION,
'GEOIP_REGION_EDITION_REV0' => GEOIP_REGION_EDITION_REV0,
'GEOIP_CITY_EDITION_REV0' => GEOIP_CITY_EDITION_REV0,
'GEOIP_ORG_EDITION' => GEOIP_ORG_EDITION,
'GEOIP_ISP_EDITION' => GEOIP_ISP_EDITION,
'GEOIP_CITY_EDITION_REV1' => GEOIP_CITY_EDITION_REV1,
'GEOIP_REGION_EDITION_REV1' => GEOIP_REGION_EDITION_REV1,
'GEOIP_PROXY_EDITION' => GEOIP_PROXY_EDITION,
'GEOIP_ASNUM_EDITION' => GEOIP_ASNUM_EDITION,
'GEOIP_NETSPEED_EDITION' => GEOIP_NETSPEED_EDITION,
'GEOIP_DOMAIN_EDITION' => GEOIP_DOMAIN_EDITION,
);
foreach ($cst as $k=>$v) {
echo $k.': '.geoip_db_filename($v).' '.(geoip_db_avail($v) ? 'Available':'').'<br>';
}
?>
The only drawback of the PECL extension with respect to a pure PHP implementation is that you cannot select yourself where the database is. So, if you get a new version of the database, you need to put in the standard place and you may need root access to do so.
geoip_db_filename
(PECL geoip >= 1.0.1)
geoip_db_filename — Retourne le nom du fichier contenant la base de données GeoIP spécifiée
Description
$database
)La fonction geoip_db_filename() retourne le nom du fichier contenant la base de données GeoIP spécifiée.
La fonction n'indique pas si le fichier existe ou non sur le disque, mais uniquement l'endroit dans lequel la bibliothèque cherche la base de données.
Liste de paramètres
-
database -
Le type de base de données, sous la forme d'un entier. Vous pouvez utiliser diverses constantes, définies avec cette extension (ie: GEOIP_*_EDITION).
Valeurs de retour
Retourne le nom du fichier de la base de données correspondant, ou
NULL si une erreur survient.
Exemples
Exemple #1 Exemple avec geoip_db_filename()
Ceci affichera le nom du fichier correspondant à la base de données.
<?php
print geoip_db_filename(GEOIP_COUNTRY_EDITION);
?>
L'exemple ci-dessus va afficher :
/usr/share/GeoIP/GeoIP.dat
