Au fur et à mesure de la progression des services sur Internet, la localisation géographique de l’internaute est devenue un sujet phare. Dans quel but ? Cela peut aller de la simple statistiques pour mieux connaître la provenance de ses visiteurs, jusqu’au(x) service(s) tournant autour du lieu de connexion, jouant la carte de la proximité pour que l’internaute “morde à l’hameçon”.
En théorie, cela passe simplement par une conversion géographique de l’adresse IP. Pour cela vous disposez de la solution conversion de l’IP en pays. Ca n’est pas en soi compliqué, il faut requêter une base WHOIS. Cette dernière recense en effet les plages IP attribuées sur Internet et les correspondances avec le FAI et le pays.
Problème majeur : la connexion à la base WHOIS est très lente, et dans le cas d’une précision plus fine que le pays (région, ville, voire même latitude/longitude), il faudra repasser ! Si vous restez dans le cadre du pays vous pouvez télécharger la base WHOIS toute entière à intervalle réguliers pour extraire ce dont vous avez besoin. RIPE fournit ces données sur son site. Ca devrait faire l’affaire si vous aimez que votre modem vous serve aussi de radiateur
Solution alternative : il existe quelques services permettant de de faire cette conversion. Une des offres majeures du marché est GeoIP City éditée par MaxMind, et nous en venons au cas concret, elle fournit des API pour effectuer ces opérations IP vers pays, region, ville ou latitude/longitude.
L’offre est déclinée suivant votre portefeuille, et se présente sous forme d’un module Apache, d’un module PHP, ou encore d’un Web service. La version avec module PHP nous donne l’exemple suivant :
$gi = geoip_open("/chemin/vers/GeoIPCity.dat", GEOIP_MEMORY_CACHE); $record = geoip_record_by_addr($gi, $_SERVER['REMOTE_ADDR']); echo "Je kiffe les habitants de " . $record->city;
Si vous faites une allergie aux modules PHP ou que vous avez déjà installé trop d’extensions pour tout et n’importe quoi, vous avez toujours le loisir de prendre le fichier CSV GeoLite City, grâcieusement mis à jour une fois par mois chez MaxMind.
Une fois insérée dans une base de données relationnelle, on imagine facilement le câblage avec Google Maps et quelques services supplémentaires pour sortir les restaurants du lieu de connexion et lui dire qu’il ira à pied parce qu’il y a des bouchons.
juin 16th, 2007 at 10:13
Cette technique ouvre pas mal de possibilités, mais il semblerait qu’elle ne soit pas encore assez fiable en France.
Tu as plus d’infos sur les évolutions de ce service ?
juin 16th, 2007 at 11:36
En effet, au niveau ville la fiabilité en France est relativement mauvaise, on a un taux de 55% de bonnes réponses (c’est-à-dire une localisation correcte à 25km près) ce qui est assez faible. Cela vient du fait que les bases de données standard ne donnent pas toutes les infos sur la ville et qu’il faut affiner les données avec d’autres sources d’informations.
Au niveau pays et ville, il y a également les utilisateurs d’AOL qui posent problème, du fait des serveurs proxy qui masquent leur vraie identité : les Francais sont reconnus comme des anglais, les Canadiens comme venant des USA… des vraies joies diplomatiques en perspective pour l’éditeur
Au vu des enjeux, MaxMind passe sûrement des partenariats avec les FAI pour assurer la fiabilité des infos, mais peut être pas encore avec tous.
Tu trouveras pas mal d’infos sur le site de MaxMind : http://www.maxmind.com/app/city_accuracy
http://www.maxmind.com/app/techinfo