Здравствуйте!!!
Есть вот такой код
Цитата:
<?
// Начало IP адреса жертв =))
$ip="121.0.1.0";
if(empty($_SERVER['REMOTE_ADDR']))
die("<b>Ваш IP адрес не определён!</b>"
;
elseif(preg_match("!".preg_quote($ip)."!",$_SERVER['REMOTE_ADDR']))
die("тебе сюда нельзя!!!"
;
?>
А можно ли сделать чтобы писать не только один IP или $ip="121.0.1.0";$ip="666.66.66"; - много раз, а например штук 1...n через запятую??
Скажите пожалуйста, почему если я пишу например $ip="123.255.111"; $ip="свой ip ";
то в такой последовательномти мне закрывается доступ, а если $ip="свой ip "; $ip="123.255.111"; то доступ открыт, что бы это могло быть?
ошибка в неправильности подхода в целом.
1. зачем использовать preg_match для сравнения двух строк?
2. ip-адрес состоит из четырех групп цифр.
3. когда ты пишешь $ip="123.255.111"; $ip="свой ip "; , то переменной $ip вначале присваивается "123.255.111", а затем заменяется на твой ip.
выводы:
1. для сравнения достаточно strstr($_SERVER['REMOTE_ADDR'],$ip);
2. хочешь банить не конкретный айпи, а подсеть, поищи на этом форуме функцию для этого, я выкладывал.
3. хочешь банить несколько ip, используй массив.
Если банить сеть - то просто пишешь начальные цифры IPшника сети...
Maksss
если так, то при твоем подходе возможна следующая ситуация:
ты "забанил подсеть" 123.255.111
к тебе заходит посетитель с айпи 192.123.255.111 и ему надпись: "тебе сюда нельзя!!!"
Подскажите пожалуйста как будет выглядеть код если нужно забанить два IP?
подправив код и первого поста, получается
CODE:<?
$ip1="";\\первый ip-адрес
$ip2="";\\второй ip-адрес
$ip=$_SERVER['REMOTE_ADDR'];
if(empty($ip))
die("<b>Ваш IP адрес не определён!</b>");
elseif(($ip==$ip1)||($ip==$ip2)) die("тебе сюда нельзя!!!");
?>
способ, конечно же, далеко не лучший хотя бы способом определения собственного ip, но смысл в этом.
А чтобы три IP забанить код такой?
CODE:<?
$ip1="";\\первый ip-адрес
$ip2="";\\второй ip-адрес
$ip3="";\\третий ip-адрес
$ip=$_SERVER['REMOTE_ADDR'];
if(empty($ip))
die("<b>Ваш IP адрес не определён!</b>");
elseif(($ip==$ip1)||($ip==$ip2)||($ip==$ip3)) die("тебе сюда нельзя!!!");
?>
А если ip-шников 50 штук?
ETC
Сказал альфа, говори и бета...
Что предлагаешь?