Тема: php ip ban
Показать сообщение отдельно

  #6  
Старый 19.03.2008, 00:13
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
Провел на форуме:
1740746

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
Exclamation

Не самая удачная реализация но всеже)

PHP код:
<?
$limit_time 
5;                    //за какое время сделано $click входов чтобы банить (в секундах)
$ban_time 20;                    //на сколько банить
$click 3;                        //сколько входов разрешено сделать за $limit_time
$time strftime("%M:%S"time());            //определяем время
list ($minut,$sekund) = explode(":",$time);        //переводим к   нужной форме
$ip_navhode $REMOTE_ADDR;            //определяем айпи адресс


session_name("testses");
session_start();
session_register("i");                    //храним количество входов
session_register("m");                //храним значение минуты
session_register("s");                    //храним значение секунды
//session_register("p");                    //храним вспомогательное значение
if ($m==''){$m=$minut;}                //если минута не была определена то определяем
if ($s==''){$s=$sekund;}                //если секунда не была определена то определяем

if ($i==0) {
$s=$sekund;
$m=$minut;
}
if (
$i $click)                         //если сделанно входов по проверке меньше максимума то считаем их

$p=$i;
$i=@$i+1;
echo 
"ok!";
}
else                            
//если сделанно входов по проверке больше максимума
{
if  (
$s<$sekund) {$raznost = ($sekund-$s);} else {$raznost = ($s-$sekund);}
echo 
$raznost;
$s=$sekund;
$m=$minut;
if (
$raznost<$limit_time) { echo '<META HTTP-EQUIV = "Refresh" CONTENT = "0; URL = ban.php">'$i=0;} 
else { if (
$p<2){ echo "GO"$i=0$p=@$p+1; } else { echo "GO"$i=2; } }
}
?>

Последний раз редактировалось Flame of Soul; 19.03.2008 в 00:31..
 
Ответить с цитированием