Géolocalisez vos visiteurs avec MaxMind
Envie de savoir dans quel pays se trouve votre visiteur ? Avec MaxMind et un peu de PHP rien de plus simple !
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.


Parfait, c'est exactement ce que je cherchais!
Guiguui | vendredi 27 mars 2009 | 17:48Parfait, c'est exactement ce que je cherchais!
Merci
Merci pour ce tuto. Simple, clair. C'est
Jnuk | mardi 21 juillet 2009 | 16:07Merci pour ce tuto. Simple, clair. C'est exactement ce que je cherchais!
C'est grâce aux gens comme toi que le web avance. Snif.
A plus
tas oublié un "o" ($cde)
m | lundi 17 août 2009 | 06:06tas oublié un "o" ($cde)
Merci pour la remarque, c'est corrigé.
Thierry Geindre | lundi 17 août 2009 | 17:25Merci pour la remarque, c'est corrigé.
Très bon article. Est-ce que tu sais le faire avec
C-First | mercredi 25 novembre 2009 | 10:34Très bon article. Est-ce que tu sais le faire avec détection de la ville géographique de l'IP ?
C'est payant ? Sais-tu combien ?
bonjour. est t'il possible une fois Les variables
RenardBlanc | dimanche 29 novembre 2009 | 15:21bonjour. est t'il possible une fois Les variables $code et $pays récupéré d'autoriser l'accés au site que pour certain pays ? j'ai trouver un autres systeme ici:
http://www.phpcs.com/codes/INTERDIR... pour interdire un ou plusieurs pays. j'avais éssayer par ce code mais ca me bloquais a la place. if (trim(IpEnPays()) != "FRANCE" OR trim(IpEnPays()) != "PAYS")
si vous aviez une astuce je serais preneur.
Merci Thierry super tuto je le cherchais il y a
tim | lundi 9 août 2010 | 00:36Merci Thierry super tuto je le cherchais il y a longtemps
Hey! Your blog is totally awesome, I enjoy reading
seo analysis tool | vendredi 29 juillet 2011 | 18:43Hey! Your blog is totally awesome, I enjoy reading it since I founded it in google on the first place. But why you are so deep for other search queries? It’s really unfair. I recommend you to use ProChecker to improve your Google rankings (you can explore more about it clicking on the link in the URL field - it’s not a spam, of course, just a friendly advice). Please Keep writing! Best regards, Steve.