Commencez par télécharger l'API PHP puis la base de données gratuite (à décompresser) fournie par MaxMind. Vous devrez ainsi obtenir au moins deux fichiers :

  • geoip.inc
  • GeoIP.dat

Je vous propose de les placer dans un sous répertoire que l'on nommera geoip. Vous pouvez maintenant créer un fichier geoip.php dans lequel nous allons localiser le visiteur de la page.

Vous devez donc obtenir l'arborescence suivante :

  • geoip.php
  • geoip/
    • geoip.inc
    • GeoIP.dat

Si vous avez tout, vous pouvez éditer le fichier geoip.php.

Nous commençons par déterminer quel est le répertoire courant afin de pouvoir ensuite inclure l'API MaxMind.

$dir = dirname(__FILE__);
require($dir.'/geoip/geoip.inc');

Nous récupérons ensuite l'adresse IP de notre visiteur. On pourrait tout aussi bien utiliser une adresse IP différente pour un autre usage.

$ip = $_SERVER['REMOTE_ADDR'];

Nous ouvrons la base de données que nous avons téléchargé précédemment.

$gi   = geoip_open($dir."/geoip/GeoIP.dat",GEOIP_STANDARD);

Nous pouvons maintenant récupérer le code et le nom du pays correspondant à l'adresse IP que nous avons déterminée plus haut.

$code  = geoip_country_code_by_addr($gi, $ip);
$pays  = geoip_country_name_by_addr($gi, $ip);

Nous pouvons enfin fermer la base de données précédemment ouverte.

geoip_close($gi);

Les variables $code et $pays contiennent désormais respectivement le code et le nom du pays correspondant à l'adresse IP. Il est possible, par exemple, de les afficher ainsi :

echo $code,' - ',$pays;

A noter : La base de données gratuite présente tout de même une petite faiblesse. Vous l'avez peut-être remarqué sur le site de MaxMind, les utilisateurs AOL sont systématiquement localisés aux USA.

Je vous propose une petite démonstration.