Comment intégrer la géolocalisation avec Lazarus et Geolite2 de Maximind
Qu’est-ce que la géolocalisation d'ne adresse IP ?
Quand un internaute visite votre site web, le serveur web qui héberge votre site stocke son adresse IP, le plus souvent en IPV 4 par exemple :
124.155.122.255 est une adresse IP IPV4.
Pour différents besoins il est utile de localiser ce visiteur suivant son adresse IP ; La problématique est donc de découvrir dans quel continent, dans quel pays, dans quelle ville, voire dans quelle rue il est. Oui certaines base de géolocalisation vont jusqu’à la rue !
Le nécessaire pour géo localiser une adresse IP :
En premier il vous faut les adresses IP de vos visiteurs. Google Analytic par exemple fournit un bon service de géolocalisation, mais j'ai décidé de ne pas utiliser Google Analytic. Je récupère donc les logs de connexion à mon site fournis par mon hébergeur OVH.
La géolocalisation d’une adresse IP nécessite une base de données remplie avec les adresses IP connues et leur géolocalisation. Une telle base de données gratuite existe. Elle est cependant limitée car vous descendrez au niveau du pays seulement. Dans le cas de la base Geolite2 fournie par Maximind, l’autre point faible est qu’elle n’est pas mise à jour. Mais hé, elle est gratuite. Sur le site Maximind vous découvrirez des services payant pour des données plus précises et à jour.
Point important il existe une démonstration en ligne vous permettant de géo localiser 20 adresses IP par jour. Largement suffisant pour tester votre logiciel ou module logiciel de géolocalisation.
Comment j’ai intégré la géolocalisation au projet WeblogAnalyzer
J’ai décidé de télécharger la base au format CSV pour ensuite la transformer en base de données Sqlite. La base de données Sqlite est une base de données de type fichier contrairement à MySQL qui est une base de donnée client/serveur. La différence, grossièrement, est que pour interroger la base de données l’accès est un accès au fichier de la base et non une requête serveur sur un port dédié.
J’ai pensé qu’il serait plus simple d'utiliser un langage de requêtes comme SQL plutôt que de me lancer dans le développement d'un moteur de recherche dans des fichiers CSV. Sinon le temps de développement du projet logiciel WeblogAnalyzer aurait souffert de délais conséquents.
Les étapes pour développer la géolocalisation dans mon projet logiciel sont les suivantes :
- Analyser la base Geolite2 et comprendre son fonctionnement
- Concevoir les schémas des tables la base SQLite hébergeant les données CSV de Geolite
- Importer les données CSV dans la base SQLite
- Concevoir l’objet en langage Pascal qui encapsulera l’interrogation de la base SQLite
- Concevoir l’algorithme de géolocalisation
- Valider la géolocalisation en m’aidant de la démonstration en ligne de Geolite2
AGL (application de génie logiciel)
Delphi 6 et Turbo Delphi 2006 en Edition personelle
Lazarus IDE
Langages de progammation et Script
Pascal,C-ANSI, C++, Perl, VBS, Batch
Base de données
Sqlite, MySql
Sites Internet et Web
HTM 4, CSS 2, Javascript 2
Systèmes d'exploitation
Windows, Windows CE
Qui sommes-nous?