Géolocaliser vos internautes

Bonsoir tout le monde, et oui ce blog n'est pas mort c'est juste que ces dernières semaines j'avais beaucoup de recherches à faire au boulot, des exams à préparer ... mais j'ai toujours les mêmes objectifs et motivations ;). Aujourd'hui je vais vous présenter 3 API que j'utilise pour géolocaliser les internautes cependant je ne vais détailler qu'une seule dans ce billet pour les autres vous pouvez m'envoyer un message si vous trouver quelques difficultés d'utilisation.

La premiere API est la plus complète à mon avis maxmind (je l'utilise en production) c'est une application en C contenant une base de données que vous pouvez mettre à jour avec toutes les plages d'adresses et leur correspondances (pays et ville), c'est la plus intéressante parce qu'il y a pas de risque d'un déni de service vu que tout est en local, ce qui veut dire aussi plus de rapidité. mais il faut avoir les droits suffisants sur le serveur d'hébergement pour l'installer. Pour les djangonautes voici la doc pour débuter http://geodjango.org/docs/geoip.html.

Pour les 2 autres API ce sont en quelques sortes des service web accessible via http wipmania et ma préféré iplocationtools avec laquelle je ferais quelques tests dans ce billet.

L'iplocationtools propose un objet Json comme response donc le seul point qui manque c'est l'ip de l'internaute coté serveur il est tjrs envoyé dans l'entête http du request accessible sous la variable REMOTE_USER sinon en javascript il n'y a aucune possibilité sauf si l'utilisateur a installé des plug-ins genre java ou des activeX. mais dans les 2 cas une fois l'ip identifié il faut envoyer une requête vers le site distant pour avoir des détails sur l'ip bref quelques petits exemples valent mieux qu'un long discours.

Une fonction python :

def get_info_user(request):
       import urllib
       #on identifie l'ip de l'utilisateur avec REMOTE_USER
       ip_user = request.GET['REMOTE_USER']
       #on ouvre le site distant à travers urllib avec biensur comme paramètre l'ip de l'utilisateur
       info_user = urllib.urlopen("http://iplocationtools.com/ip_query.php?ip=" + ip_user +"&output=json").read()
       return HttpResponse(info_user)

en javascript si l'utilisateur dispose du plug-in java:

if ( navigator.javaEnabled() ) {
   var adresse = java.net.InetAddress.getLocalHost();
   var machine = adresse.getHostName();
   var ip = adresse.getHostAddress();
   $.getJSON("http://iplocationtools.com/ip_query.php?ip=" + ip + "&output=json",function(resp){
             var  pays = resp.CountryName;
             var ville = resp.CityName;
              alert("pays : " + pays + "; ville : " + ville);
           })
   }
   else {
   alert("Java n'est pas activé");
   }

j'espère que ça serra utile un jour à quelqu'un :) bonne soirée.

Ajouter un commentaire

Nom :*
Email :*
Site perso :
Commentaire :*
chargement