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

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

Репутация: 435
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..
 
Ответить с цитированием