Géolocalisation par IP : mise en place concrète, comment ?

WRInaute discret
Concrètement comment mettre en place un système de géolocalisation par l'ip pour rediriger les visiteurs venant des usa par exemple et ceux venant de France ?

Existe-t'il un script ?
l'un de vous l'utilise ?


De même pour l'utilisation de l'entete http pour avoir la langue du browser ?


Thx :)
 
WRInaute passionné
Code:
<?php
$langue = substr("$HTTP_ACCEPT_LANGUAGE", 0, 5);
if($langue=="en-us")
{
 echo "Vous êtes américain";
}
else
{
 echo "Vous n'etes pas américain";
}
?>

Pas vraiment fiable mais bon.
 
WRInaute accro
Je me permet de redonner ce lien : http://www.abc-netmarketing.com/rubriqu ... brique=379 (je sais que tu l'as déjà lu romain187, mais c'est pour ceux que ça pourrait interresser)

Sinon, on ne détecte pas la nationalité de tel visiteur par sa langue mais par son IP. Je ne suis pas un grand spoécialiste dans ce domaine mais le processus doit être le suivant :
- on stocke les plages IP (qu'on a louer ou acheter avant) dans une base de données
- on détecte l'IP du visiteur
- on compare l'IP du visiteur avec les plages IP dans la BDD

Ce qui nous donne son pays (désolé, romain187, j'ai pas de script sous la main, mais il doit pas être bien difficile à faire).

Ensuite il faut effectivement détecter la langue car on peut parler différentes langues dans un même pays. Dans ce cas, l'exemple de rottman est le seul que je connaisse, c'est à dire détecter la langue du navigateur.
 
WRInaute discret
Pour le pays, tu peux utiliser ça : http://www.maxmind.com/app/php
Normalement, ça doit être à peu près fiable (il y a sûrement des erreurs ou des inconnus (IP d'AOL par ex) et il faut mettre le fichier régulièrement à jour).


Pour le language, je pense que le HTTP_ACCEPT_LANGUAGE est le plus fiable...
 
WRInaute discret
Merci pour vos réponses,

j'ai trouvé ca sur le net entre temps pour ceux qui sont intéressés aussi :

Code:
<?php
class geolocalisation
{
var $geolocalisation;

function geolocalisation()
{
$this->geolocalisation = "";
} 

/** Converts IP adress to IP number **/
function ip_tonumber($ipadress)
{
if ($ipadress == "")
return 0;
else
{
$iptab = explode (".", "$ipadress"); // Retourne un tableau de chaînes
$res = ($iptab[0] * 256 * 256 * 256 + $iptab[1] * 256 * 256 + $iptab[2] * 256 + $iptab[3] );
return $res;
}
}

/** address IP converts into name of the corresponding country **/
function ip_tocountry($ipnumber)
{
$db = new connect();

$sql = "SELECT country_name FROM country_ip WHERE'".$ipnumber."' BETWEEN ip_from AND ip_to";

$res = $db->Query($sql);
return $res;
}
}

?>

fichier geo.php
Code:
<?
include("class.geolocalisation.php");

$geolocalisation = new geolocalisation();

$ip = getenv("REMOTE_ADDR");

/****** MILTON 03/08/04 - Géolocalisation (2) - Vérification des droits *******/
$ipnumber = $geolocalisation->ip_tonumber($ip);
//$ipcountry = $geolocalisation->ip_tocountry($ipnumber);

echo "<br> IP : $ip <br>IPNUMBER : $ipnumber ";
?>
 
Nouveau WRInaute
Moi j'utilise ce script il marche très bien et est très maniable. Il permer de récupérer la ville de provenance du visiteur.

Code:
<?php 
$ip = "ip à géolocaliser";
$script = "http://www.ieducatif.fr/geoloc/geo.php?IP= ";
$retour = file_get_contents($script.$ip);

echo $retour;

?>
Il suffit tout simplement de renseigner la variable $ip et le script fait le reste.

Source : http://developpeur-creatif.blogspot.com/2010/01/php-geolocaliser-une-ip-afficher-la.html
 
WRInaute accro
Pour utiliser un trucs similaire, jamais trouvé une BD correcte (dans mon cas, les visiteurs belges voient des pubs pour les produits du magasin, les autres voient des pubs adsence). Des plages d'IP normalement belge sont en fait néerlandaise (et vis versa), des plages françaises sont aussi reprises comme belge ??? Avec des rachats de fournisseurs d'accès, c'est plus complexe qu'une simple base de donnée. Il y a un pays africain que j'ai viré du serveur: passé de 100 VU /jour à une petite dizaine selon XITI (mais d'ou viennent la dizaine qui reste?)

Sans compter les connexions par satellites ou proxy.
 
Discussions similaires
Haut