ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

php ip ban
  #1  
Старый 17.03.2008, 16:41
Аватар для noisia
noisia
Познающий
Регистрация: 13.03.2007
Сообщений: 55
Провел на форуме:
297449

Репутация: 17
По умолчанию php ip ban

Нужен скрипт который бы при обращении на страницу в течении 5 секунд 3 раза, банил на 20 минут.
 
Ответить с цитированием

  #2  
Старый 17.03.2008, 17:19
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

доступ к фаеру есть?
ОСь какая?
 
Ответить с цитированием

  #3  
Старый 17.03.2008, 17:27
Аватар для lsass.exe
lsass.exe
Участник форума
Регистрация: 05.08.2007
Сообщений: 236
Провел на форуме:
4625160

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

https://forum.antichat.ru/thread48981.html
частично сорцы оттуда заюзать можешь
 
Ответить с цитированием

  #4  
Старый 18.03.2008, 12:59
Аватар для x88x
x88x
Участник форума
Регистрация: 27.11.2007
Сообщений: 233
Провел на форуме:
1379382

Репутация: 378
Отправить сообщение для x88x с помощью ICQ
По умолчанию

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

  #5  
Старый 18.03.2008, 13:13
Аватар для noisia
noisia
Познающий
Регистрация: 13.03.2007
Сообщений: 55
Провел на форуме:
297449

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

одного
 
Ответить с цитированием

  #6  
Старый 19.03.2008, 00:13
Аватар для Flame of Soul
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..
 
Ответить с цитированием

  #7  
Старый 20.03.2008, 16:24
Аватар для ~X3RiX~
~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, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Local include && PHP baz1k Чужие Статьи 0 10.01.2008 04:50
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



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


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




ANTICHAT.XYZ