Вход Регистрация
Файл: gamele.ru/AntiDDOS.php
Строк: 89
<?php  
#(c) Boolean.   
#####################################################################################  
#####################################################################################  
#####################################################################################  
#####################################################################################  

$config['time']                 = 0.1;  
#Время обращения к скрипту, после которого будет(возможно) выдан бан.  
$config['countaban']            = 5;  
#количество возможных нарушений времени обращения, такая возможность введена для более детально точного отделения пользователей от атакующих ботов.   
$config['directory']            = $_SERVER["DOCUMENT_ROOT"].'/includes/database/antiddos/_temp';  
#временна директория, должна существовать, и иметь права на запись.  
$config['checkmask']            = 'check';  
#маска для проверки, не стоит трогать.  
$config['banmask']              = 'ban';  
#маска для бана, не стоит трогать.  

#Комманды после нарушения времени и кол-ва обращений. Используйте константу [IP] - IP Бота.  
$config['commands'][]           = 'iptables -A OUTPUT -s [IP] -j DROP';  
$config['commands'][]           = 'iptables -A INPUT -s [IP] -j DROP';  

#Доверенные IP.  
$config['white']['ip']          = @file($_SERVER["DOCUMENT_ROOT"].'/includes/database/antiddos/whiteips.txt');  
#Доверенные ЮзерАгенты.  
$config['white']['useragent'][] = 'Google bot';  
$config['white']['useragent'][] = 'Yasha bot';  

#Сообщение для пользователя. HTML Работает.  
$config['message']              = file_get_contents($_SERVER["DOCUMENT_ROOT"].'/includes/database/antiddos/ddosmessage.html');  

#####################################################################################  
#####################################################################################  
#####################################################################################  
#####################################################################################  

$ip                             $_SERVER['REMOTE_ADDR'];  
$useragent                      $_SERVER['HTTP_USER_AGENT'];  
if ( ! 
is_dir($config['directory']) )  
    exit(
"Temp directory not found.");  
if ( ! 
is_writable($config['directory']) )  
    exit(
"Temp directory is not writable.");  
if ( @
in_array($ip,$config['white']['ip']) || @in_array($useragent,$config['white']['useragent']) )  
    
$white true;  
if ( ! 
$white ){  
    if ( 
file_exists$config['directory'] . "/" $config['checkmask'] . $ip ) ){          
        
$time filemtime($config['directory'] . "/" $config['checkmask'] . $ip);  
        
$f=fopen$config['directory'] . "/" $config['checkmask'] . $ip 'w' );   
        
fclose($f);           
        if (
$time >= time() - $config['time']){
            if (
file_exists($config['directory'] . "/" $config['banmask'] . $ip)){  
                
$count file_get_contents($config['directory'] . "/" $config['banmask'] . $ip);  
                if (
$count >= $config['countaban']){              
                    for(
$i 0$i <= count($config['commands']) - 1$i++){  
                        
passthru(str_replace("[IP]",$ip,$config['commands'][$i]),$ret);
                        echo(
$ret);
                    }
                }else{  
                    
$time filemtime($config['directory'] . "/" $config['banmask'] . $ip);  
                    if (
$time >= time() - $config['time']){  
                        
$count++;  
                        
$f=fopen$config['directory'] . "/" $config['banmask'] . $ip 'w' );  
                        
fwrite($f,$count);   
                        
fclose($f);  
                    }else{  
                        
$f=fopen$config['directory'] . "/" $config['banmask'] . $ip 'w' );  
                        
fwrite($f,"1");   
                        
fclose($f);                          
                    }  
                }             
            }else{  
                
$f=fopen$config['directory'] . "/" $config['banmask'] . $ip 'w' );  
                
fwrite($f,"0");    
                
fclose($f);  
            }  
            exit(
$config['message']);  
        }  
    }else{      
        
$f=fopen$config['directory'] . "/" $config['checkmask'] . $ip 'w');       
        
fclose($f);      
    }    
}
?>
Онлайн: 2
Реклама