mardi 3 mars 2015

Localiser les visiteurs de votre site

02:44

N'avez-vous jamais eu envie de géolocaliser vos visiteurs ? Pour faire des statistiques, préremplir des formulaires, détecter des multicomptes, placer vos membres sur une carte, ou bien tout juste par curiosité ?
Peu importe votre motif, nous allons apprendre à géolocaliser nos visiteurs très simplement avec notre cher PHP.
La première étape consistera à récupérer la base de données GeoLite MaxMind. 
MaxMind--> https://www.maxmind.com/fr/home est une société qui propose un service de géolocalisation. Si cette entreprise propose une version payante de ses services, elle propose également une version gratuite pour les personnes ne pouvant se permettre de se payer une licence ou souhaitant tester leur solution. Celle-ci, bien que moins précise, apporte tout de même une bonne précision au niveau de la ville. C'est donc à partir de GeoLite (le nom de la version gratuite) que se basera ce tutoriel, mais rien ne vous empêche de faire de même avec la version payante.
Tout le système repose sur une base de données, c'est ce que GeoLite fournit. Mais que contient cette base de données ? Eh bien elle relie des plages d'adresses IP à des locations.
Il faut donc tout d'abord télécharger cette base de données d'environ 20 Mo. Celle-ci sera utilisée à l'aide d'une API. Différentes API sont disponibles (C, PHP, Java, Perl, Python...) dont vous trouverez de l'aide, en anglais, ici --> http://www.maxmind.com/app/city#api . Dans ce tutoriel, je vous expliquerai comment utiliser l'API PHP.
Voici maintenant, le lien que vous attendez tous... le lien de téléchargement de la base de données GeoLite. Eh bien, le voici !http://geolite.maxmind.com/…/ge…/database/GeoLiteCity.dat.gz .

Après avoir décompresser notre base de donnée, nous allons avant toute chose créer un dossier "geoloc" où l'on y mettra tous les fichiers nécessaires à la géolocalisation, cela évitera de vous perdre surtout si vous êtes aussi bordéliques que moi.
Tout d'abord, mettez votre fichier "GeoLiteCity.dat" dans votre dossier.
Maintenant, téléchargez l'API PHP-->http://geolite.maxmind.com/downlo…/…/api/php/php-1.11.tar.gz et décompressez là..Nous allons avoir besoins des fichiers suivant:
geoip.inc
geoipcity.inc
geoipregionvars.php
Ces fichiers sont nécessaires pour extraire les informations de la base de données, et vous permettre de les récupérer facilement. Mettez-les dans votre dossier geoloc.
Créez maintenant, toujours dans le dossier geoloc, un fichier exemple.php qui contient le code suivant.
****************************************Code****************************************
<?php
include("geoipcity.inc");
include("geoipregionvars.php");

$gi = geoip_open(realpath("GeoLiteCity.dat"),GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,$_SERVER['REMOTE_ADDR']); //Cette fonction nous permet de créer un objet contenant toutes les informations de localisation
echo $record->country_name . "\n"; // NOM DU PAYS
echo $GEOIP_REGION_NAME[$record->country_code][$record->region] . "\n"; // NOM DE LA RÉGION
echo $record->city . "\n"; // NOM DE LA VILLE
echo $record->postal_code . "\n"; // CODE POSTAL
echo $record->latitude . "\n"; // LATITUDE
echo $record->longitude . "\n"; // LONGITUDE
geoip_close($gi);
?>
****************************************Code****************************************
Et accédez à ce fichier via votre navigateur, vous devriez voir votre localisation ou dans le cas d'une IP dynamique, des informations erronées.
Attention: Si votre site tourne en local, à l'aide de Wamp par exemple, vous vous retrouverez face à une page vide vu que <?php $_SERVER['REMOTE_ADDR'] ; ?> retournera 127.0.0.1.
Source: Openclassrooms

1 commentaires:

 

© 2015 Galsen Coder's, by JokerSoft . Tous Droits Résèrvés.

Back To Top