Les informations supplémentaires venant de l’adresse IP

Une fois que l’on a la ville où a été localisée une IP il n’est plus trop compliqué d’afficher d’autre informations sur la ville en question.

En effet, si l’on possède une référence dans la table « locations » (voir la base de données geocalise-ip) d’une ville, alors on a aussi ces coordonnées géographiques : latitude et longitude.

Donc en toute logique il nous suffit d’avoir une autre table avec les informations sur la ville et ses coordonnées géographiques bien évidement, ce qui nous permettra par exemple de faire une requête du style :

 SELECT * FROM `villes` WHERE TRUNCATE(`latitude_ville`,3)='46.150' AND TRUNCATE(`longitude_ville`,3)='4.916' 

Alors quelques explications :

  • Un TRUNCATE parce que la longitude et la latitude que nous avons dans la table « locations » sont moins précises que notre table « villes »
  • Par contre il va falloir tester les valeurs proches parce que en base les float (7,4) (ce qui équivaut à 000.0000) ne sont pas stocker comme l’on pourrait le croire. 10.28 va être stocker en 10.2799 … Et oui, c’est comme ça ! voir sur le site de MySQL (tout en bas). Ce qui nous donnera au final 3 requêtes supplémentaires :
     SELECT * FROM `villes` WHERE TRUNCATE(`latitude_ville`,3)='46.149' AND TRUNCATE(`longitude_ville`,3)='4.916' 

     SELECT * FROM `villes` WHERE TRUNCATE(`latitude_ville`,3)='46.150' AND TRUNCATE(`longitude_ville`,3)='4.915' 

     SELECT * FROM `villes` WHERE TRUNCATE(`latitude_ville`,3)='46.149' AND TRUNCATE(`longitude_ville`,3)='4.915' 

Une fois la ville localiser en base, on peut y récupérer des informations tel que son code postal et/ou son code INSEE, une paire/clef qui normalement est unique (ce n’est pas tout à fait vrai avec les lieux-dits par exemple).

Si vous voulez ce genre des informations précises sur les villes de France nous nous sommes basés pour le moment sur celles de Jérôme GALICHON ici http://www.galichon.com/codesgeo/.
Mais une base de données plus récente et surtout concernant le monde existe chez geonames (attention les informations complètes font pas loin de 1Go).
Vous pouvez aussi nous contacter pour localisation ip professionnelle.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.