Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#39 used as offset, casting to integer (39) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Блок по IP адресу...
ТвойWeb » WebMaster класс » PHP/Perl » Блок по IP адресу...

Страниц (3): [1] 2 3 »
 

1. Maksss - 20 Января, 2006 - 04:59:36 - перейти к сообщению
Здравствуйте!!!
Есть вот такой код
Цитата:

<?
// Начало 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 через запятую??
2. Maksss - 21 Января, 2006 - 02:15:02 - перейти к сообщению
Скажите пожалуйста, почему если я пишу например $ip="123.255.111"; $ip="свой ip ";
то в такой последовательномти мне закрывается доступ, а если $ip="свой ip "; $ip="123.255.111"; то доступ открыт, что бы это могло быть?
3. RaZoR - 21 Января, 2006 - 02:28:10 - перейти к сообщению
ошибка в неправильности подхода в целом.
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, используй массив.
4. Maksss - 21 Января, 2006 - 03:50:10 - перейти к сообщению
Если банить сеть - то просто пишешь начальные цифры IPшника сети...
5. RaZoR - 21 Января, 2006 - 05:04:45 - перейти к сообщению
Maksss
если так, то при твоем подходе возможна следующая ситуация:
ты "забанил подсеть" 123.255.111
к тебе заходит посетитель с айпи 192.123.255.111 и ему надпись: "тебе сюда нельзя!!!"
6. Aeron - 26 Марта, 2006 - 10:56:56 - перейти к сообщению
Подскажите пожалуйста как будет выглядеть код если нужно забанить два IP?
7. RaZoR - 26 Марта, 2006 - 19:57:59 - перейти к сообщению
подправив код и первого поста, получается
CODE:
<?
$ip1="";\\первый ip-адрес
$ip2="";\\второй ip-адрес
$ip=$_SERVER['REMOTE_ADDR'];
if(empty($ip))
die("<b>Ваш IP адрес не определён!</b>");
elseif(($ip==$ip1)||($ip==$ip2)) die("тебе сюда нельзя!!!");
?>

способ, конечно же, далеко не лучший хотя бы способом определения собственного ip, но смысл в этом.
8. Aeron - 07 Апреля, 2006 - 09:06:47 - перейти к сообщению
А чтобы три 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("тебе сюда нельзя!!!");
?>
9. ETC - 07 Апреля, 2006 - 15:32:06 - перейти к сообщению
А если ip-шников 50 штук?
10. SviMik - 07 Апреля, 2006 - 17:29:54 - перейти к сообщению
ETC
Сказал альфа, говори и бета...
Что предлагаешь? Улыбка

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0294]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33