Pays du visiteur

Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié par Sinistrus le 7/04/2015 à 12:54
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 7 avril 2015 à 17:23
Bonjour à tous !

J'essaie depuis vendredi d'afficher le pays du visiteur de mon site... seulement rien ne s'affiche !

J'ai installé la base de données et j'ai ajouté ce code :
<?php
function ipAdressNumber($dotted){ 
$dotted = preg_split( "/[.]+/", $dotted); 
$ip = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
return $ip; } 

$ip = $_SERVER['REMOTE_ADDR'];  echo 'IP: '.$ip.'<br />'; 
$MonIp = ipAdressNumber($ip);  echo 'Nb: '.$MonIp.'<br />'; 

$sql = "SELECT * FROM ip_to_country WHERE '".$MonIp."' BETWEEN 'IP_FROM' AND 'IP_TO' ";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
 
echo 'PA: <strong>'.$data['COUNTRY_NAME'].'</strong>';
?>

L'IP s'affiche, le $MonIp aussi (normal) mais la requête ne fonctionne pas je ne sais pas pourquoi...

J'ai même essayé avec ça :
<?php
function ipAdressNumber($dotted){ 
$dotted = preg_split( "/[.]+/", $dotted); 
$ip = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
return $ip; } 

$ip = $_SERVER['REMOTE_ADDR'];  
$MyIp = ipAdressNumber($ip);

$sql = "SELECT * FROM ip_to_country";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
while($data = mysql_fetch_assoc($req)){

$From = $data['IP_FROM']; $To = $data['IP_TO']; $MonIp = $MyIp;

if($From <= $MonIp AND $To >= $MonIp) {
echo 'PA: '.$data['COUNTRY_NAME'].'<br />';
echo 'C0: '.$data['COUNTRY_CODE'].'<br />';
echo 'C3: '.$data['COUNTRY_CODE_3'].'';
}
}
echo "vide";
?>

Mais rien y fait !
Vous avez idée svp ?

1 réponse

Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
7 avril 2015 à 17:23
Mouais, j'ai compris le problème... Si je met un chiffre en intervalle, il est considéré et le script fonctionne.
Un ami en France a testé et ça fonctionne...
seulement le Sénégal, la Côte d'Ivoire ne fonctionnent pas... la table est pourtant téléchargée depuis :
https://cyberzoide.developpez.com/php4/ip-to-country/

Je ne comprends pas pourquoi ces pays là (testé) ne passent pas
0