HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #7  
Старый 20.03.2008, 16:24
~X3RiX~
Banned
Регистрация: 14.03.2008
Сообщений: 36
Провел на форуме:
285523

Репутация: 9
По умолчанию

Цитата:
Сообщение от noisia  
Нужен скрипт который бы при обращении на страницу в течении 5 секунд 3 раза, банил на 20 минут.
скрипт работает на файлах

1. ChFile.txt
2. BFile.txt

вот сам код

PHP код:
<?php

$ChFile 
"ChFile.txt";
$BFile "BFile.txt";

class 
XBan
{
    function 
ChTime($ip)
    {
        global 
$ChFile;
        
        
$handle fopen($ChFile"a");
        
        
fwrite($handle$ip."#".time()."\r\n");
        
        
fclose($handle);
        
        
$handle fopen($ChFile"r");
        
        
$Chdet 0;
        
        while(!
feof($handle))
        {
            
$line fgets($handle1024);
            
$ChA explode("#"$line);
            if(
$ChA[0] == "$ip")
            {
                if(
$ChA[1] > time() - 5)
                {
                    
$Chdet++;
                    
                    if(
$Chdet == 3)
                    {
                        
$this->true;
                        
$this->Ban($iptime());
                        break;
                    }
                }
            }
        }
        
        
fclose($handle);
        return 
$this->r;
    }
    
    function 
Ban($ip$time)
    {
        global 
$BFile;
     
        
$handle fopen($BFile"r");
        
        while(!
feof($handle))
        {
            
$line fgets($handle1024);
            
            if(
preg_match("/$ip/"$line) !== 1)
            {
                if(
strlen($line) > 0)
                {
                    
$lines[] = $line;
                }
            }
        }
        
        
fclose($handle);
        
        
$handle fopen($BFile"w");

        for(
$i 0$i count($lines); $i++)
        {
            
fwrite($handle$lines[$i]."\r\n");
        }
        
        
fwrite($handle$ip."*".$time."\r\n");
        
        
fclose($handle);
    }
    
    function 
ChDet($ip)
    {
        global 
$BFile;
        
        if(
$handle fopen($BFile"r"))
        {
            while(!
feof($handle))
            {
                
$line fgets($handle1024);
                
                
$BA explode("*"$line);
                
                if(
preg_match("/$ip/"$line) !== 0)
                {
                    if(
$BA[1] > time() - 1200)
                    {
                        
$this->true;
                        break;
                    }
                }
            }
        }
        return 
$this->r;
    }
}

$RobotX = new XBan;
$RobotX->UserIP $_SERVER['REMOTE_ADDR'];
$RobotX->false;

if(
$RobotX->ChDet($RobotX->UserIP) == true)
{
    echo(
"<h1>Forbidden</h1>");
}
else
{
    if(
$RobotX->ChTime($RobotX->UserIP) == true)
    {
        echo(
"Stop!");
    }
    else
    {
        echo(
"Ok!");
    }
}

?>

Последний раз редактировалось ~X3RiX~; 20.03.2008 в 17:48..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP 186 21.02.2010 02:41
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ