Localisation par adresse ip en php
Fermé
Voici mon petit probleme:
je cherche a connaitre la localisation (grossière genre pays) des personnes qui se connectent à mon site. Je sais que c'est possible car Nedstat propose un tel service et ca a l'air de marcher dans environ 90% des cas. J'essaie de faire ca en php mais je suis ouvert a tout autre langage. Je pense qu'on doit pouvoir tirer des informations de l'adresse ip, mais comment ?
Merci.
je cherche a connaitre la localisation (grossière genre pays) des personnes qui se connectent à mon site. Je sais que c'est possible car Nedstat propose un tel service et ca a l'air de marcher dans environ 90% des cas. J'essaie de faire ca en php mais je suis ouvert a tout autre langage. Je pense qu'on doit pouvoir tirer des informations de l'adresse ip, mais comment ?
Merci.
A voir également:
- Localisation php
- Google maps localisation maison - Guide
- Google maps localisation - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ma localisation - Guide
- Whatsapp localisation - Guide
20 réponses
Le script de m2ok me localise à 20 km de chez moi alors que je vis à moins de 500m de Grenoble !
Enfin bon !
Moi j'ai trouvé (en cherchant et sans réinventer la roue)
http://ipinfodb.com/ip_location_api.php
Ils ont même la gentillesse de mettre tout le code php pour questionner leur site sur les adresses ip
Suffit de se servir !
On peut récupérer dans des variables, le pays, la région, la ville,...
Enfin bon !
Moi j'ai trouvé (en cherchant et sans réinventer la roue)
http://ipinfodb.com/ip_location_api.php
Ils ont même la gentillesse de mettre tout le code php pour questionner leur site sur les adresses ip
Suffit de se servir !
On peut récupérer dans des variables, le pays, la région, la ville,...
No comments
<?
$a=array();
// get real ip adress
@detectProxy($a);
$ip_avant = $a['IP'];
//get localisation
$ip2country = @ip2country($ip_avant);
print_r($ip2country );
function ip2country($ipadress)
{
$surl = "https://whatismyipaddress.com/ip-lookup";
$data = "LOOKUPADDRESS=" . $ipadress;
$geolocalisation = do_post_request($surl, $data);
preg_match("#<font class='block-title'>Geo-Location Information<font size=2></B></font></font><P><UL>(.*?)</TABLE>#is", $geolocalisation, $mylocalistion, PREG_OFFSET_CAPTURE);
preg_match("#<TR><TD>Country</TD><TD>(.*?)<#is", $mylocalistion[1][0], $country, PREG_OFFSET_CAPTURE);
preg_match("#<img src=\"(.*?)\"#is", $mylocalistion[1][0], $countryimg, PREG_OFFSET_CAPTURE);
preg_match("#<TR><TD>City</TD><TD>(.*?)</TD>#is", $mylocalistion[1][0], $city, PREG_OFFSET_CAPTURE);
$a = array ("country" => trim($country[1][0]), "city" => trim($city[1][0]), "countryimg" => trim($countryimg[1][0]));
return $a;
}
function do_post_request($url, $data, $optional_headers = null) {
$start = strpos($url,'//')+2;
$end = strpos($url,'/',$start);
$host = substr($url, $start, $end-$start);
$domain = substr($url,$end);
$fp = pfsockopen($host, 80);
if(!$fp) return null;
fputs ($fp,"POST $domain HTTP/1.1\n");
fputs ($fp,"Host: $host\n");
if ($optional_headers) {
fputs($fp, $optional_headers);
}
fputs ($fp,"Content-type: application/x-www-form-urlencoded\n");
fputs ($fp,"Content-length: ".strlen($data)."\n\n");
fputs ($fp,"$data\n\n");
$response = "";
while(!feof($fp)) {
$response .= fgets($fp, 1024);
}
fclose ($fp);
return $response;
}
function detectProxy(&$ar)
{//begin of function
$gotcha=false;
if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER) || array_key_exists('HTTP_PROXY_CONNECTION',$_SERVER) || array_key_exists('HTTP_VIA',$_SERVER))
{$gotcha=TRUE;}
$gotcha = (stristr($_SERVER['REMOTE_HOST'],"proxy") !== FALSE ) ? TRUE : $gotcha ;
if($gotcha)
{
$ar['PORT']= (array_key_exists('REMOTE_PORT',$_SERVER) ? $_SERVER['REMOTE_PORT'] : "unknown");
$ar['HOST']= (array_key_exists('REMOTE_HOST',$_SERVER) ? $_SERVER['REMOTE_HOST'] : "unknown");
$ar['IP']= (array_key_exists('REMOTE_ADDR',$_SERVER) ? $_SERVER['REMOTE_ADDR'] : "unknown");
$ar['FORWARDED_FOR']=(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : "unknown");
$ar['INFO']= (array_key_exists('HTTP_VIA',$_SERVER) ? $_SERVER['HTTP_VIA'] : "unknown");
}
else
{
$ar['PORT']= (array_key_exists('REMOTE_PORT',$_SERVER) ? $_SERVER['REMOTE_PORT'] : "unknown");
$ar['HOST']= (array_key_exists('REMOTE_HOST',$_SERVER) ? $_SERVER['REMOTE_HOST'] : "unknown");
$ar['IP' ]= (array_key_exists('REMOTE_ADDR',$_SERVER) ? $_SERVER['REMOTE_ADDR'] : "unknown");
}
return $gotcha;
}//end of function
?>
<?
$a=array();
// get real ip adress
@detectProxy($a);
$ip_avant = $a['IP'];
//get localisation
$ip2country = @ip2country($ip_avant);
print_r($ip2country );
function ip2country($ipadress)
{
$surl = "https://whatismyipaddress.com/ip-lookup";
$data = "LOOKUPADDRESS=" . $ipadress;
$geolocalisation = do_post_request($surl, $data);
preg_match("#<font class='block-title'>Geo-Location Information<font size=2></B></font></font><P><UL>(.*?)</TABLE>#is", $geolocalisation, $mylocalistion, PREG_OFFSET_CAPTURE);
preg_match("#<TR><TD>Country</TD><TD>(.*?)<#is", $mylocalistion[1][0], $country, PREG_OFFSET_CAPTURE);
preg_match("#<img src=\"(.*?)\"#is", $mylocalistion[1][0], $countryimg, PREG_OFFSET_CAPTURE);
preg_match("#<TR><TD>City</TD><TD>(.*?)</TD>#is", $mylocalistion[1][0], $city, PREG_OFFSET_CAPTURE);
$a = array ("country" => trim($country[1][0]), "city" => trim($city[1][0]), "countryimg" => trim($countryimg[1][0]));
return $a;
}
function do_post_request($url, $data, $optional_headers = null) {
$start = strpos($url,'//')+2;
$end = strpos($url,'/',$start);
$host = substr($url, $start, $end-$start);
$domain = substr($url,$end);
$fp = pfsockopen($host, 80);
if(!$fp) return null;
fputs ($fp,"POST $domain HTTP/1.1\n");
fputs ($fp,"Host: $host\n");
if ($optional_headers) {
fputs($fp, $optional_headers);
}
fputs ($fp,"Content-type: application/x-www-form-urlencoded\n");
fputs ($fp,"Content-length: ".strlen($data)."\n\n");
fputs ($fp,"$data\n\n");
$response = "";
while(!feof($fp)) {
$response .= fgets($fp, 1024);
}
fclose ($fp);
return $response;
}
function detectProxy(&$ar)
{//begin of function
$gotcha=false;
if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER) || array_key_exists('HTTP_PROXY_CONNECTION',$_SERVER) || array_key_exists('HTTP_VIA',$_SERVER))
{$gotcha=TRUE;}
$gotcha = (stristr($_SERVER['REMOTE_HOST'],"proxy") !== FALSE ) ? TRUE : $gotcha ;
if($gotcha)
{
$ar['PORT']= (array_key_exists('REMOTE_PORT',$_SERVER) ? $_SERVER['REMOTE_PORT'] : "unknown");
$ar['HOST']= (array_key_exists('REMOTE_HOST',$_SERVER) ? $_SERVER['REMOTE_HOST'] : "unknown");
$ar['IP']= (array_key_exists('REMOTE_ADDR',$_SERVER) ? $_SERVER['REMOTE_ADDR'] : "unknown");
$ar['FORWARDED_FOR']=(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : "unknown");
$ar['INFO']= (array_key_exists('HTTP_VIA',$_SERVER) ? $_SERVER['HTTP_VIA'] : "unknown");
}
else
{
$ar['PORT']= (array_key_exists('REMOTE_PORT',$_SERVER) ? $_SERVER['REMOTE_PORT'] : "unknown");
$ar['HOST']= (array_key_exists('REMOTE_HOST',$_SERVER) ? $_SERVER['REMOTE_HOST'] : "unknown");
$ar['IP' ]= (array_key_exists('REMOTE_ADDR',$_SERVER) ? $_SERVER['REMOTE_ADDR'] : "unknown");
}
return $gotcha;
}//end of function
?>
Voici le code php permettant de recuperer le pays, la region, la ville, la longitude et la lattitude par l'ip d'un visiteur
Seul probléme on ne peut soumettre que 25 demandes / jour
Cela conviendra au petit site souhaitant permettre une inscription prés-remplie
<?php
$ip=$_SERVER["REMOTE_ADDR"];
// Initialisation de la page vers laquelle on poste
$url = 'http://www.maxmind.com/app/lookup_city';
// Mis en forme des valeurs postees
$post = array(
'ips' => $ip
);
//Mise en place du POST
$postdata = '' ;
foreach( $post as $name => $value ) {
$postdata .= $name . '=' . $value . "&" ;
}
// Creation du tableau d'option
$opts = array( 'http' =>
array (
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
// Creation du contexte
$context = stream_context_create($opts);
// Recuperation d une page en methode post
$http_page = file_get_contents($url,false,$context);
// Nettoyage du code recupere
$http_page=eregi_replace("<!DOCTYPE(.+)$ip","",$http_page);
$http_page=eregi_replace("</table>(.+)</html>","",$http_page);
$http_page=str_replace('</font></td>','',$http_page);
$http_page=str_replace('</tr>','',$http_page);
$http_page=explode('<td><font size="-1">',$http_page);
//Recuperation des valeurs dans le tableau
$country_alpha2=$http_page[1];
$country=$http_page[2];
$region=$http_page[4];
$ville=$http_page[5];
$latitude=(float)$http_page[7];
$longitude=(float)$http_page[8];
//Affichage des resultats
echo 'country_alpha2:'.$country_alpha2.'<br>';
echo 'country:'.$country.'<br>';
echo 'region:'.$region.'<br>';
echo 'verif:'.$ville.'<br>';
echo 'latitude:'.$latitude.'<br>';
echo 'longitude:'.$longitude.'<br>';
?>
Seul probléme on ne peut soumettre que 25 demandes / jour
Cela conviendra au petit site souhaitant permettre une inscription prés-remplie
<?php
$ip=$_SERVER["REMOTE_ADDR"];
// Initialisation de la page vers laquelle on poste
$url = 'http://www.maxmind.com/app/lookup_city';
// Mis en forme des valeurs postees
$post = array(
'ips' => $ip
);
//Mise en place du POST
$postdata = '' ;
foreach( $post as $name => $value ) {
$postdata .= $name . '=' . $value . "&" ;
}
// Creation du tableau d'option
$opts = array( 'http' =>
array (
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
// Creation du contexte
$context = stream_context_create($opts);
// Recuperation d une page en methode post
$http_page = file_get_contents($url,false,$context);
// Nettoyage du code recupere
$http_page=eregi_replace("<!DOCTYPE(.+)$ip","",$http_page);
$http_page=eregi_replace("</table>(.+)</html>","",$http_page);
$http_page=str_replace('</font></td>','',$http_page);
$http_page=str_replace('</tr>','',$http_page);
$http_page=explode('<td><font size="-1">',$http_page);
//Recuperation des valeurs dans le tableau
$country_alpha2=$http_page[1];
$country=$http_page[2];
$region=$http_page[4];
$ville=$http_page[5];
$latitude=(float)$http_page[7];
$longitude=(float)$http_page[8];
//Affichage des resultats
echo 'country_alpha2:'.$country_alpha2.'<br>';
echo 'country:'.$country.'<br>';
echo 'region:'.$region.'<br>';
echo 'verif:'.$ville.'<br>';
echo 'latitude:'.$latitude.'<br>';
echo 'longitude:'.$longitude.'<br>';
?>
J'ai réaliser et utilises un script qui marche très bien.
Il suffit d'indiquer l'IP et le script retourne la ville de provenance du visiteur. Il est facilement maniable en PHP.
Il suffit d'indiquer l'IP et le script retourne la ville de provenance du visiteur. Il est facilement maniable en PHP.
<?php $ip = "l'ip à géolocaliser"; $script = "http://********/geoloc/geo.php?IP="; $retour = file_get_contents($script.$ip); echo $retour; ?>
sweetone
Messages postés
16
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
20 octobre 2017
31 mars 2010 à 18:03
31 mars 2010 à 18:03
bonjour ..
je n'y connais RIEN dans les scripts et autres ..
mais j'ai besoin de localiser précisément l'expéditeur de messages que je reçois régulièrement.
j'ai son Ip et son pays mais pas sa ville ou localisation précise et c'est vraiment urgent...
je suis allée sur ton blog mais c'est trop technique pour moi .. ;o)
peux tu m'aider stp ?
je n'ai pas trouver comment t'adresser un message privé ici pur te donner mon msn ou mon mail ...
Cordialement
je n'y connais RIEN dans les scripts et autres ..
mais j'ai besoin de localiser précisément l'expéditeur de messages que je reçois régulièrement.
j'ai son Ip et son pays mais pas sa ville ou localisation précise et c'est vraiment urgent...
je suis allée sur ton blog mais c'est trop technique pour moi .. ;o)
peux tu m'aider stp ?
je n'ai pas trouver comment t'adresser un message privé ici pur te donner mon msn ou mon mail ...
Cordialement
avrelbct
Messages postés
311
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
17 février 2011
55
5 juil. 2010 à 14:01
5 juil. 2010 à 14:01
J'ai essayé ce petit bout de script... je me connecte de Paris, ça me retourne que je me connecte de Buenos Aire...
je l'ai testé ce script . le problème chez moi s'est que file_get_contents ne fonctionne pas sur mon hebergeur ou alors le site d'origine ( http://www.ieducatif.fr/geoloc/....) a placé une restriction . le seul moyen est un iframe et bouh caca les iframes .... mais sinon il me localise bien a la bonne adresse .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjours ayant lu les réponses (certaines pertinentes d'autre pas ...) j'ai trouvé un tuto en français pour intégrer la géolocalisation à votre site ( ce n'est pas comparable à Google Analytics mais peut faire l'affaire pour des cas bien précis).
Les plus de cette méthode :
- Permet de cibler et d'enregistrer dans une base de données (ou fichier si ça vous fais plaisir !) la ville, le code postal, le pays, la latitude et la longitude du visiteur en manipulant facilement le code que l'on donne.
- très facile d'intégration,
- permet d'être super classe avec une carte du monde en le couplant à Google Maps.
Les moins :
- c'est comme tout, rien n'est facile, il faut avoir des compétences en PHP.
- Il y a deux versions une gratuite limité à une trentaine d'informations,
l'autre est payante.
! IMPORTANT : les ip dynamiques ne peuvent être localiser avec précision, les ip fixe oui avec une précision de 2 à 20 km il me semble
La méthode est bien sur optimal pour l'enregistrement des information d'administration sinon elle sert à rien puisque Google Analytics fait très bien les statistiques visiteurs.
J'ai failli oublier le lien du tuto :)
http://www.siteduzero.com/tutoriel-3-306955-geolocalisez-vos-visiteurs-grace-a-leur-ip.html
Bonne intégration
Skim
Les plus de cette méthode :
- Permet de cibler et d'enregistrer dans une base de données (ou fichier si ça vous fais plaisir !) la ville, le code postal, le pays, la latitude et la longitude du visiteur en manipulant facilement le code que l'on donne.
- très facile d'intégration,
- permet d'être super classe avec une carte du monde en le couplant à Google Maps.
Les moins :
- c'est comme tout, rien n'est facile, il faut avoir des compétences en PHP.
- Il y a deux versions une gratuite limité à une trentaine d'informations,
l'autre est payante.
! IMPORTANT : les ip dynamiques ne peuvent être localiser avec précision, les ip fixe oui avec une précision de 2 à 20 km il me semble
La méthode est bien sur optimal pour l'enregistrement des information d'administration sinon elle sert à rien puisque Google Analytics fait très bien les statistiques visiteurs.
J'ai failli oublier le lien du tuto :)
http://www.siteduzero.com/tutoriel-3-306955-geolocalisez-vos-visiteurs-grace-a-leur-ip.html
Bonne intégration
Skim
Bonjour,
J'ai été confronté a un problème similaire, je devait situer géographiquement un internaute.
Après une rapide recherche sur le web, j'ai finalement opté pour l'API de google Map.
Le lien suivant explique la technique dans le détail:
http://briancray.com/2009/05/29/find-web-visitors-location-javascript-google-api/
Cette solution implique d'obtenir une AJAX Search API Key disponible gratuitement au lien suivant:
http://code.google.com/intl/fr-FR/apis/ajaxsearch/signup.html
J'ai été confronté a un problème similaire, je devait situer géographiquement un internaute.
Après une rapide recherche sur le web, j'ai finalement opté pour l'API de google Map.
Le lien suivant explique la technique dans le détail:
http://briancray.com/2009/05/29/find-web-visitors-location-javascript-google-api/
Cette solution implique d'obtenir une AJAX Search API Key disponible gratuitement au lien suivant:
http://code.google.com/intl/fr-FR/apis/ajaxsearch/signup.html
Bonjour,
Merci beaucoup pour l'info !
Ca fonctionne tres bien, je compte l'utiliser sur mes sites web pour faire de la pub locale ....
Filmip
Http://www.ak1-fun.com
Merci beaucoup pour l'info !
Ca fonctionne tres bien, je compte l'utiliser sur mes sites web pour faire de la pub locale ....
Filmip
Http://www.ak1-fun.com
Bonjour,
Je sais que le post est vieux, mais bon il ressort encore sur GG donc ...
Je pense même que cette réponse est déjà sur CCM, enfin bref il existe une API Web de géolocalisation ip sur https://www.geolocalise-ip.com/ et testé par des potes et moi.
Pas grand chose à dire parce que cela fonctionne bien, si ce n'est la limitation à 50 requêtes par jour en gratuit.
Je sais que le post est vieux, mais bon il ressort encore sur GG donc ...
Je pense même que cette réponse est déjà sur CCM, enfin bref il existe une API Web de géolocalisation ip sur https://www.geolocalise-ip.com/ et testé par des potes et moi.
Pas grand chose à dire parce que cela fonctionne bien, si ce n'est la limitation à 50 requêtes par jour en gratuit.
chiryphp
Messages postés
2
Date d'inscription
lundi 24 janvier 2011
Statut
Membre
Dernière intervention
24 janvier 2011
1
Modifié par baladur13 le 1/06/2011 à 12:02
Modifié par baladur13 le 1/06/2011 à 12:02
<?php 002 function getPage($link){ 003 004 if ($fp = fopen($link, 'r')) { 005 $content = ''; 006 007 while ($line = fread($fp, 1024)) { 008 $content .= $line; 009 } 010 } 011 012 return $content; 013 } 014 015 function pingLink($domain){ 016 $file = @fopen($domain,"r"); 017 $status = -1; 018 019 if (!$file) { 020 $status = -1; // Site is down 021 } 022 else { 023 $status = 1; 024 fclose($file); 025 } 026 return $status; 027 028 } 029 030 function checkPage($content){ 031 $links = array(); 032 033 if (strlen($content) > 10){ 034 $startPos = 0; 035 while (strpos($content,'<a ',$startPos)){ 036 $spos = strpos($content,'<a ',$startPos); 037 $tmppos = strpos($content,'>',$spos); 038 $spos = strpos($content,'href',$spos); 039 $spos1 = strpos($content,'"',$spos)+1; 040 $spos2 = strpos($content,"'",$spos)+1; 041 if ($spos2 < $spos1) $spos = $spos2; 042 else $spos = $spos1; 043 044 $epos1 = strpos($content,'"',$spos); 045 $epos2 = strpos($content,"'",$spos); 046 if ($epos2 < $epos1) $epos = $epos2; 047 else $epos = $epos1; 048 049 $startPos = $epos; 050 $link = substr($content,$spos,$epos-$spos); 051 if (strpos($link,'http://') !== false) $links[] = $link; 052 } 053 } 054 055 return $links; 056 } 057 058 ?> 059 060 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> 061 <html> 062 <head> 063 <title>Micro Link Checker</title> 064 <link href="style/style.css" rel="stylesheet" type="text/css" /> 065 </head> 066 <body> 067 <div id="main"> 068 <div id="caption">LINK STATUS</div> 069 <div id="icon"> </div> 070 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="domain" id="domain"> 071 072 <table width="100%"> 073 <tr><td>URL to check:</td><td><input class="text" name="myurl" type="text" size="45"></td></tr> 074 <tr><td align="center" colspan="2"><br/><input class="text" type="submit" name="submitBtn" value="Check links"></td></tr> 075 </table> 076 </form> 077 <?php 078 if (isset($_POST['submitBtn'])){ 079 $url = isset($_POST['myurl']) ? $_POST['myurl'] : ''; 080 if (!(strpos($url,'http://') === 0) ) $url = 'http://'.$url; 081 082 ?> 083 <div id="caption">RESULT : <?php echo $url; ?></div> 084 <div id="icon2"> </div> 085 <div id="result"> 086 <table width="100%"> 087 <?php 088 $txt = getPage($url); 089 $linkArray = checkPage($txt); 090 foreach ($linkArray as $value) { 091 if (pingLink($value) <= 0){ 092 $status = "INVALID"; 093 } else { 094 $status = "OK"; 095 } 096 echo "<tr><td align='left'>$value</td><td>$status</td></tr>"; 097 sleep(2); 098 @ob_flush(); 099 flush(); 100 } 101 102 ?> 103 </table> 104 </div> 105 <?php 106 } 107 ?> 108 <div> 109 </body>
[Publicité supprimée Modération CCM
<script language="Javascript" src=" http://map.geoup.com/geoup?template=welcome"></script>
je pense que ça doit marcher essaie le
je pense que ça doit marcher essaie le
carolline23
Messages postés
4
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
17 octobre 2002
12 janv. 2002 à 12:30
12 janv. 2002 à 12:30
Merci pour le tuyau, ca marche bien. Je me demande quand même comment ils font, et évidemment pas moyen de voir leurs sources...
bonjour
Je suis alle sur ton site la geolocalisation est bonne pour le pays mais pas pour la ville.
j'au voulu remplir le questionaire mais impossible de terminer, le serveur me demande toujours de mettre un code, que je mets evidement et qu'il trouve a chaque fois inexact.
La ville indique est quand meme a 800 km de chez moi lol
See you soon
Je suis alle sur ton site la geolocalisation est bonne pour le pays mais pas pour la ville.
j'au voulu remplir le questionaire mais impossible de terminer, le serveur me demande toujours de mettre un code, que je mets evidement et qu'il trouve a chaque fois inexact.
La ville indique est quand meme a 800 km de chez moi lol
See you soon
Pour les webmasters qui le désirent, je fournis un script PHP sur mon site Internet http://www.WeLive.fr dans la rubrique Géolocalisation par IP.
Le script PHP vous retourne les informations sous forme de variables PHP : Pays, Drapeau du pays, Région-Département-Code Postal pour la France, Ville.
Celui-ci nécessite une inscription préalable aux fins d'éviter que n'importe qui l'utilise.
A bientôt
WeLive.fr
Le script PHP vous retourne les informations sous forme de variables PHP : Pays, Drapeau du pays, Région-Département-Code Postal pour la France, Ville.
Celui-ci nécessite une inscription préalable aux fins d'éviter que n'importe qui l'utilise.
A bientôt
WeLive.fr
Judes-Emile Bornes IV
Messages postés
123
Date d'inscription
dimanche 6 avril 2008
Statut
Membre
Dernière intervention
23 février 2010
12
22 mars 2009 à 07:26
22 mars 2009 à 07:26
c'est bien gentil WeLive.fr mais comment ton script peut-il fonctionner quand les gens ont une IP virtuelle par dyndns?
Salut,
J'ai utilisé l'API PHP de MaxMind pour gélocaliser une adresse IP. Je l'affiche ensuite sur une carte Yahoo! Maps grâce à une application Adobe Flex. Toutes les étapes de l'installation et les scripts PHP sont présentés:
http://www.flex-tutorial.fr
J'ai utilisé l'API PHP de MaxMind pour gélocaliser une adresse IP. Je l'affiche ensuite sur une carte Yahoo! Maps grâce à une application Adobe Flex. Toutes les étapes de l'installation et les scripts PHP sont présentés:
http://www.flex-tutorial.fr
sabaana
Messages postés
7
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
31 juillet 2010
31 juil. 2010 à 17:31
31 juil. 2010 à 17:31
Regarde ici tous simplement !!!
http://belkhersite.hebergratuit.com/details.php?Article=11
http://belkhersite.hebergratuit.com/details.php?Article=11
rincourt
Messages postés
1
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
9 décembre 2011
9 déc. 2011 à 17:57
9 déc. 2011 à 17:57
Bonjour,
Avez vous un code complet qui fonctionne?
Mon objectif est de récupérer le nom de la ville dans une variable à partir de la personne qui c'est connecté à mon site.
car je dois rechercher dans ma Base l'association d'echec la plus proche de chez lui.
J'ai 62 ans, et franchement je ne comprends pas pourquoi cela ne fonctionne pas.
Est ce que l'un d'entre vous à une solution simple .
Einstein disait "faites simple simplement mais pas simpliste".
Avez vous un code complet qui fonctionne?
Mon objectif est de récupérer le nom de la ville dans une variable à partir de la personne qui c'est connecté à mon site.
car je dois rechercher dans ma Base l'association d'echec la plus proche de chez lui.
J'ai 62 ans, et franchement je ne comprends pas pourquoi cela ne fonctionne pas.
Est ce que l'un d'entre vous à une solution simple .
Einstein disait "faites simple simplement mais pas simpliste".
ridefmx
Messages postés
4
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
2 avril 2009
11 déc. 2007 à 18:33
11 déc. 2007 à 18:33
L'outil Google Analytics te permet de faire la géolocalisation par continent, pays, et même ville.
C'est très simple à implémenter (juste un javascript à coller), et ça marche bien, si tu veux pas trop t'embêter je conseille de faire le suivi des visites par une application tierce-partie comme celle là.
A+
C'est très simple à implémenter (juste un javascript à coller), et ça marche bien, si tu veux pas trop t'embêter je conseille de faire le suivi des visites par une application tierce-partie comme celle là.
A+
bonjour j'aimerais avoir sur mon forum a chaque fois que les membres écrive un drapeaux qui s'affiche de leur pays c'est possible ?et comment faire merci
bonjour, je voudrai savoir s'il etait possible d'avoir le code du site WeLive juste pour la localisation grace a l'IP. ou un autre code mais aussi precis que ce site au nievau de la ville. je trouve cela tres interessant pour savoir ou lancer une campagne de publicté pour une entreprise. cela serai mi coté administrateur enregistrer dans une bd.
Là tu vas trouver ton bohneur
http://www.2enetworx.com/
Yota238
http://www.2enetworx.com/
Yota238
Bonjour à toutes et tous,
Pour ma part, j'ai absolument besoin d'un système de géolocalisation très précis ( avec une marge d'erreur inférieure à 100 mètres).
Car dans le cadre de la création de mon site " communautaire" il faut que je puisse indiquer à chaque membres la distance qui les séparent les uns des autres.
Dans cette optique connaissez-vous et utilisez-vous le système mis en place sur le site " adopte un mec"? Et si oui, est il viable et gratuit? Merci pour vos réponses et votre intérêt!
Pour ma part, j'ai absolument besoin d'un système de géolocalisation très précis ( avec une marge d'erreur inférieure à 100 mètres).
Car dans le cadre de la création de mon site " communautaire" il faut que je puisse indiquer à chaque membres la distance qui les séparent les uns des autres.
Dans cette optique connaissez-vous et utilisez-vous le système mis en place sur le site " adopte un mec"? Et si oui, est il viable et gratuit? Merci pour vos réponses et votre intérêt!
cela demanderais que chacun donne sa localisation luis même et que tu face toi même une base de données énorme qui localiserais chaque ip enregistrée mais la encore on se retrouve face au problème des ip dynamique. un ip ne peut pas être plus précise que le relais ou elle est branché (la boucle local). certaine ip sont anonyme et ne donne comme localisation proxy anonyme (même sans proxy), il existe des plages d'ip qui sont donée a un emplacement géographique (c'est ce qu'utilise la plupart des localisateur ip)
moi j'utilise les plage ip et j'exclue une par une les ip que je sait dynamiques, je remplace les nombre pour qu'ils soit tous complet (exemple 27.18.567.43 (cette ip n'existe pas car elle contient un nombre supérieur a 255) j'utilise une expression régulière en php pour la transformé en 027.018.567.043 puis un $ip=str_replace(".","",$ip);
pour supprimé les point(on a donc 027018567043) et la on en fait un simple nombre ce qui fait 27018567043 (sa a juste supprimé le premier 0 mais il est pas important celui la)
puis je le compare au ip de ma base de données (qui ont aussi été mis au format de simple nombre)et la , il y a plus qu'à faire quelques étape rapide.
// 1 si c'est une ip dynamique, on saute la suite, la on peut riens faire.
// en code c'est juste un
if ($ip=="une ip dynamique" || $ip=="une autre ip dynamique" [et encore avec toute les ip dynamique]) {echo "nous n’avons pas pu vous localisé"}
// 2 sinon se n'est pas une ip dynamique on vérifi les plage de donéeet on la localise
else
{
if( $ip>=(début de plage d'ip) && $ip<=(fin de plage de donée){echo "ville correspondante";
if( $ip>=(début d une autre plage d'ip) && $ip<=(fin de l'autre plage de donée){echo "ville correspondante";
...
}
ma base de donnée est un simple fichier text avec une ip par ligne pour les ip dynamique
et un autre fichier text avec une ip par ligne sur 2 lignes séparé par une ligne vide pour les plages d'ip et pour le if, j'ai fait une boucle PHP qui compte le nombre de retour a la ligne pour connaitre le nombre d'ip enregistrée et la récupérer a chaque fois pour écrire toute les ip dynamique a viré automatiquement. (j'utilise uniquement PHP pour lire du txt, pas besoin de base de données SQL mais rien n’empêche d'en utilisé une)
pour récupérer son ip dans $ip j'utilise sa qui en plus renvoi si on utilise un proxy
$ipproxy="";
$ipprox="";
$proxy=0;
if (isset($_SERVER['HTTP_CLIENT_IP'])){
$ipclient=$_SERVER['HTTP_CLIENT_IP'];
$ipprox=" et vous utilisez un internet partager d'addresse: ";
$ipprox.=$_SERVER['REMOTE_ADDR'];
$proxy=1;
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ipclient=$_SERVER['HTTP_X_FORWARDED_FOR'];
$ipproxy=" et vous utilisez un proxy d'adresse: ";
$ipproxy.=$_SERVER['REMOTE_ADDR'];
$proxy=1;
}
if($proxy==0) {
$ipclient=$_SERVER['REMOTE_ADDR'];
$ipproxy=" et vous utilisez n'utilisez aparement pas de proxy";
}
echo "<p>votre IP est: " ;echo $ipclient;echo $ipprox; echo $ipproxy ;echo "</p>" ;
(source du code de récuperation de l'ip http://76zzz29.freeboxos.fr/login)
ajoutez juste un $ip=$ipclient si vous ne voulez rien changer sinon remplacer l'un par l'autre(places sa avant la localisation) remplacez juste le echo "<p>votre IP est: " ;echo $ipclient;echo $ipprox; echo $ipproxy ;echo "</p>" ;
par le scripte de localisation
moi j'utilise les plage ip et j'exclue une par une les ip que je sait dynamiques, je remplace les nombre pour qu'ils soit tous complet (exemple 27.18.567.43 (cette ip n'existe pas car elle contient un nombre supérieur a 255) j'utilise une expression régulière en php pour la transformé en 027.018.567.043 puis un $ip=str_replace(".","",$ip);
pour supprimé les point(on a donc 027018567043) et la on en fait un simple nombre ce qui fait 27018567043 (sa a juste supprimé le premier 0 mais il est pas important celui la)
puis je le compare au ip de ma base de données (qui ont aussi été mis au format de simple nombre)et la , il y a plus qu'à faire quelques étape rapide.
// 1 si c'est une ip dynamique, on saute la suite, la on peut riens faire.
// en code c'est juste un
if ($ip=="une ip dynamique" || $ip=="une autre ip dynamique" [et encore avec toute les ip dynamique]) {echo "nous n’avons pas pu vous localisé"}
// 2 sinon se n'est pas une ip dynamique on vérifi les plage de donéeet on la localise
else
{
if( $ip>=(début de plage d'ip) && $ip<=(fin de plage de donée){echo "ville correspondante";
if( $ip>=(début d une autre plage d'ip) && $ip<=(fin de l'autre plage de donée){echo "ville correspondante";
...
}
ma base de donnée est un simple fichier text avec une ip par ligne pour les ip dynamique
et un autre fichier text avec une ip par ligne sur 2 lignes séparé par une ligne vide pour les plages d'ip et pour le if, j'ai fait une boucle PHP qui compte le nombre de retour a la ligne pour connaitre le nombre d'ip enregistrée et la récupérer a chaque fois pour écrire toute les ip dynamique a viré automatiquement. (j'utilise uniquement PHP pour lire du txt, pas besoin de base de données SQL mais rien n’empêche d'en utilisé une)
pour récupérer son ip dans $ip j'utilise sa qui en plus renvoi si on utilise un proxy
$ipproxy="";
$ipprox="";
$proxy=0;
if (isset($_SERVER['HTTP_CLIENT_IP'])){
$ipclient=$_SERVER['HTTP_CLIENT_IP'];
$ipprox=" et vous utilisez un internet partager d'addresse: ";
$ipprox.=$_SERVER['REMOTE_ADDR'];
$proxy=1;
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ipclient=$_SERVER['HTTP_X_FORWARDED_FOR'];
$ipproxy=" et vous utilisez un proxy d'adresse: ";
$ipproxy.=$_SERVER['REMOTE_ADDR'];
$proxy=1;
}
if($proxy==0) {
$ipclient=$_SERVER['REMOTE_ADDR'];
$ipproxy=" et vous utilisez n'utilisez aparement pas de proxy";
}
echo "<p>votre IP est: " ;echo $ipclient;echo $ipprox; echo $ipproxy ;echo "</p>" ;
(source du code de récuperation de l'ip http://76zzz29.freeboxos.fr/login)
ajoutez juste un $ip=$ipclient si vous ne voulez rien changer sinon remplacer l'un par l'autre(places sa avant la localisation) remplacez juste le echo "<p>votre IP est: " ;echo $ipclient;echo $ipprox; echo $ipproxy ;echo "</p>" ;
par le scripte de localisation
2 févr. 2012 à 14:46
12 avril 2012 à 10:12
Voilà pourquoi ça te met à 20km au lieu de 500m...