Pays du visiteur

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
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 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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