Geoip avec maxmind - localiser un visiteur

Soyez le premier à donner votre avis sur cette source.

Vue 9 396 fois - Téléchargée 1 541 fois

Description

Voici un exemple de code PHP pour utiliser la GeoIP (Pays, ville, latitude et longitude à partir de l'IP)
Pour cela nous nous appuyerons sur la source de données MaxMind.

Le systeme MaxMind fonctionne de la manière suivante :
- Telechargez le fichier binaire contenant les informations de GeoIP
- Telechargez les nombreux fichiers modules permettant de gerer les fichier binaires
- Et demerdez vous !

Pour simplifier grandement les choses, j'ai regroupé, et épure les fichier les modules pour qu'il tienne en un seul fichier. J'ai pris également la peine d'annoter cette source pour que vous trouviez la version gratuite du fichier binaire de MaxMind, mais attention, vous n'avez droit au mieux qu'a un téléchargement par 24h, si vous insister, votre IP sera black listée.

Pour avoir les informations voulues à partir d'un IP c'est aussi simple que l'exemple ci dessous :

Source / Exemple :


// Module de gestion du fichier binaire MaxMind
include("geoip/module.php");

// Génération d'un IP aléatoire
$aleaip = rand(0,255) . "." .  rand(0,255) . "." .  rand(0,255) . "." .  rand(0,255);

// Recupère un tableau associatif des informatinos voulu en fournissant 
// l'ip et le chemin du fichier binaire
$geoip = Get_GeoIP_Infos($aleaip, "geoip/GeoLiteCity.dat");

// Affiche les informations
echo $geoip['country'];
echo $geoip['city'];
echo $geoip['latitude'];
echo $geoip['longitude'];

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
41
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
17 décembre 2010

J'ai placé ce script au niveau débutant car c'est censé être une boite noire dont l'utilisation est extrêmement simplifié. Le code permettant de gérer le fichier binaire est à l'origine fourni par MaxMind, une développeur débutant un peu forcené et ayant le courage d'avaler la documentation fourni en est capable ^^
Messages postés
11
Date d'inscription
dimanche 10 juillet 2005
Statut
Membre
Dernière intervention
20 octobre 2009

Et aussi, si tu classe cette source dans débutant, alors que je programme depuis plusieures années en11 languages, je dois être alors en dessous du débutant. Faudrait que ce forum la reclasse.

juste comme ca
Messages postés
11
Date d'inscription
dimanche 10 juillet 2005
Statut
Membre
Dernière intervention
20 octobre 2009

Super, franchement, ca l'air de du beau code. Par contre, tu peux me renseigner d'avantage? Je suis allé voir sur le site de maxmind, et je me demandais si le lien que tu donnes pour le fichier dat si il contient aussi les régions et les villes? Ou c'est juste une démo grossière? Ca semble que oui, mais dans mes refresh je ne vois pas toujours la ville pour les USA. Je sais que ca fait une ip aléatoire donc pas forcément existante.

Mais franchement, ce code, c'est toi qui l'a monté? C'est du bon code ca. J'ai plusieurs code qui font des petites merveilles, mais celui-là, il va servir à fond.

Maintenant, je dois tenter de rassembler ta sauce avec ma pizza. Avec un domaine donné, je trouve son hoster, et l'ip du hoster. Et je me servirai de ce code pour localiser. Ca va bien s'assembler. Dommage que ca soit basé juste sur l'ip. Tu vois au québec, nous avons vidéotron, qui a ses ip. Ses milliers de clients on des ip, mais provenant de vidétron. Si seulement vidétron, ou les FAI pouvaient fournir les positions locales de ses clients. Ca serait génial. Car les ip de vidétron son données à st-foy. Mais un internaute qui a vidéotron comme FAI peut aussi bien rester à 20 kilomêtres de st-foy.

Bref, c'est vraiment génial. Faudrait par contre que tu mentionne que tu branche un iframe qui vas chercher une mappe de google. C'est un plus value.

Si tu as plus de trucs qui peuvent me servir pour avoir plus de précision sur la localité à courte portée sur une ip, ou si tu as déjà payé pour les services de maxmind, à savoir si c'est fiable, tu me le fais savoir merci. Je serais prêts à payer chaque mois. Mais faut savoir si c'est fiable, et durable.

Nous avons un puissant CMS, avec 35 modules de gestion, et nous allons intégrer ce module pour la surveillance des pirates qui se connectent. Et si tu as fais cette source, nous pourrions te mettre dans nos partenaires, développeurs et contributeurs.

Je me prépare en novembre pour monter un tableau de bord en ajax qui va montrer divers colonnes et tableaux live de surveillance. Je verrais live avec ajax qui est dans quelle page et qui fait quoi. Ca va être génial avec ce module. Nous développons des portails, boutique en ligne, blogs, agence de rencontres, et ca va nous permettre de
donner un outil d'audit en temps réel de ce qui se passe sur le portail.

Encore merci pour ce beau travail. Et laisses-moi savoir si tu as des intérêts. Les contributeurs sont toujours les bienvenus dans notre mission.

D'Ailleurs, j'adore ce site et ce réseau. Je m'y branche depuis plusieures années. Faudrait changer eu peu votre message qui est là depuis des années qui ditque vous avez un nouvau caparateur de prix.......

Continuez votre beau travail tout le monde.
Messages postés
27
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
5 avril 2009

VU ! ... j'avais pas fait gaffe à ça ... je me penche sur le truc des que j'ai un moment de libre ... sinon ç'est Ok...
Messages postés
41
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
17 décembre 2010

neteraser, sur ce code la génération de l'ip est aleatoire !
Un "copier-coller" ne suffit pas, il faut bien sûr l'adapter au code en question ^^. pour connaitre l'IP de ton visiteur, tu peux utiliser la syntaxe "$_SERVER["REMOTE_ADDR"]" qui te retourne une chaine.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.