Page 1 sur 1

Bannir une liste d'IP

Posté : 18 mai 2010, 11:12
par Fatal-fury
Bonjour,

Je souhaite interdire à une personne ayant un IP dynamique de poster des messages sur un forum.
Son IP varie de '88.85.3.0' à '88.85.15.255'.

Voici mon script php qui marche, mais est-il possible de le simplifier ?
$ip = $_SERVER['REMOTE_ADDR'];
$listefai = Array('88.85.3.','88.85.4.','88.85.5.','88.85.6.','88.85.7.','88.85.8.','88.85.9.','88.85.10.','88.85.11.','88.85.12.','88.85.13.','88.85.14.','88.85.15.');
foreach ($listefai as $compare)
{ $comparaison = strstr($ip, $compare);
 if($comparaison!==false)
     {
     echo 'vous ne pouvez pas poster de message';
     }
}
Merci

Re: Bannir une liste d'IP

Posté : 18 mai 2010, 11:33
par stealth35
ouai avec ip2long

l'ip n'étant qu'un nombre ca reviens faire une comparaison simple : ip < ip_min || ip > ip_max :wink:
$ip 	= ip2long($_SERVER['REMOTE_ADDR']);
$ip_min	= ip2long('88.85.3.0');
$ip_max	= ip2long('88.85.15.255');
	
if($ip < $ip_min || $ip > $ip_max)
{
    echo 'yep';
}
else
{
    echo 'nope';
}

Re: Bannir une liste d'IP

Posté : 18 mai 2010, 12:11
par Fatal-fury
Merci beaucoup ! Je vais faire ça, j'espère qu'il n'y a pas d'erreur de signe :
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$ip_min = ip2long('88.85.3.0');
$ip_max = ip2long('88.85.15.255');
       
if($ip >= $ip_min and $ip <= $ip_max)
{
 echo 'Ban';
 exit;
}