Вход Регистрация
Файл: files/antidos.php
Строк: 49
<?



$sitetime
=time();
$brow=htmlspecialchars(stripslashes(getenv('HTTP_USER_AGENT')));

$self $_SERVER['SCRIPT_NAME'];

$ip_addr preg_replace('|[^0-9.]|'''$_SERVER['REMOTE_ADDR']);
if (
$ip_addr==""){
echo 
'<b>Ошибка! У вас отсутствует IP-адрес (REMOTE_ADDR)</b>'; exit;
}

//------------------------- Очистка старых файлов ---------------------------//
if ($opendir opendir("data/datados")) {
while (
false !== ($doslog readdir($opendir))) {
if (
$doslog != "." and $doslog != "..") {

$file_array_filemtime filemtime("data/datados/$doslog");
if (
$file_array_filemtime < ($time-60)) {
unlink("data/datados/$doslog"); 
}}}}

//-------------------------- Проверка на время -----------------------------//
$logfiles "data/datados/".$ip_addr.".dat";

if(
file_exists($logfiles)){
$file_dos_time file($logfiles);
$file_dos_strexplode("|",$file_dos_time[0]);

if(
$file_dos_str[1] < ($sitetime-60)) {
unlink($logfiles);
}}

$sitetime=time();
$brow=htmlspecialchars(stripslashes(getenv('HTTP_USER_AGENT')));

$self $_SERVER['SCRIPT_NAME'];

//------------------------------ Запись логов -------------------------------//
$write '|'.$sitetime.'|Время: '.date("Y-m-d / H:i:s",$sitetime).'|Browser: '.$brow.'|Referer: '.$http_referer.'|URL: '.$self.'|Пользователь: '.$log.'|';
$fp=fopen($logfiles,"a+");
flock ($fp,LOCK_EX);
fputs($fp,"$writern");
flock ($fp,LOCK_UN);
fclose($fp);
@
chmod ($fp0666);
@
chmod ($logfiles0666);

//----------------------- Автоматическая бликировка ------------------------//
if (count(file($logfiles)) > $config_doslimit && $config_doslimit>0) {

unlink($logfiles);

$banlines=file("data/bans.dat");
foreach(
$banlines as $banvalue){
$bancell explode("|"$banvalue);
$banarray[]=$bancell[1];
}


//-------------------------- Запись IP в базу --------------------------------//
if(!in_array($ip_addr,$banarray)){

$fp=fopen("data/bans.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"|$ip_addr|rn"); 
fflush ($fp); 
flock ($fp,LOCK_UN);                                           
fclose($fp);  

$logdat "data/datalog/bans.dat";
$hostname gethostbyaddr($ip_addr);

$write '|Заблокирован доступ для IP|IP: '.$ip_addr.'|Время: '.date("Y-m-d / H:i:s",$sitetime).'|Хост: '.$hostname.'|Referer: '.$http_referer.'|Browser: '.$brow.'|URL: '.$request_uri.'|Пользователь: '.$username.'|';

$fp=fopen($logdat,"a+");
flock ($fp,LOCK_EX);
fputs($fp,"$writern");
flock ($fp,LOCK_UN);
fclose($fp);
chmod ($fp0666); 
chmod ($logdat0666); 

$file=file($logdat); 
$i count($file);
if (
$i>=$config_maxlogdat) {
$fp=fopen($logdat,"w");
flock ($fp,LOCK_EX);
unset(
$file[0],$file[1]);
fputs($fpimplode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
}}}

//-------------------------- Запрет на вход --------------------------------//
$old_ips file("data/bans.dat");
foreach(
$old_ips as $old_ip_line){
$ip_arr explode("|"$old_ip_line);

$ip_check_matches 0;
$db_ip_split explode("."$ip_arr[1]);
$this_ip_split explode("."$ip_addr);

for(
$i_i=0;$i_i<10;$i_i++){
if (
$this_ip_split[$i_i] == $db_ip_split[$i_i] or $db_ip_split[$i_i] == '*') {
$ip_check_matches += 1;}}

if (
$ip_check_matches == 10) {
if(
$php_self!='/pages/banip.php'){ header ("Location: index,php");   exit;}} //бан по IP
}

?>
Онлайн: 4
Реклама