<?php
#-----------------------------------------------------#
# ********* WAP-MOTORS ********* #
# Made by : VANTUZ #
# E-mail : [email protected] #
# Site : http://pizdec.ru #
# WAP-Site : http://visavi.net #
# ICQ : 36-44-66 #
# Вы не имеете право вносить изменения в код скрипта #
#-----------------------------------------------------#
if (!defined("BASEDIR")) { header("Location:../index.php"); exit; }
if(isset($_SERVER['PHP_SELF'])){$php_self = check($_SERVER['PHP_SELF']);}
if(isset($_SERVER['REQUEST_URI'])){$request_uri = check(urldecode(substr(strtok($_SERVER['REQUEST_URI'],'S'),1)));} else {$request_uri="index.php";}
if(isset($_SERVER['HTTP_REFERER'])){$http_referer = check(urldecode(strtok($_SERVER['HTTP_REFERER'],'S')));} else {$http_referer="Не определено";}
if(isset($_SESSION['log'])){$username=$_SESSION['log'];}else{$username=$config_guestsuser;}
$ip_addr = preg_replace('|[^0-9\.]|', '', $_SERVER['REMOTE_ADDR']);
if ($ip_addr==""){
echo '<b>Ошибка! У вас отсутствует IP-адрес (REMOTE_ADDR)</b>'; exit;
}
//------------------------- Очистка старых файлов ---------------------------//
if ($opendir = opendir(BASEDIR."local/datados")) {
while (false !== ($doslog = readdir($opendir))) {
if ($doslog != "." and $doslog != "..") {
$file_array_filemtime = filemtime(BASEDIR."local/datados/$doslog");
if ($file_array_filemtime < ($time-60)) {
unlink(BASEDIR."local/datados/$doslog");
}}}}
//-------------------------- Проверка на время -----------------------------//
$logfiles = BASEDIR."local/datados/".$ip_addr.".dat";
if(file_exists($logfiles)){
$file_dos_time = file($logfiles);
$file_dos_str= explode("|",$file_dos_time[0]);
if($file_dos_str[1] < ($sitetime-60)) {
unlink($logfiles);
}}
//------------------------------ Запись логов -------------------------------//
$write = '|'.$sitetime.'|Время: '.date("Y-m-d / H:i:s",$sitetime).'|Browser: '.$brow.'|Referer: '.$http_referer.'|URL: '.$request_uri.'|Пользователь: '.$username.'|';
$fp=fopen($logfiles,"a+");
flock ($fp,LOCK_EX);
fputs($fp,"$write\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod ($fp, 0666);
@chmod ($logfiles, 0666);
//----------------------- Автоматическая бликировка ------------------------//
if (count(file($logfiles)) > $config_doslimit && $config_doslimit>0) {
unlink($logfiles);
$banlines=file(BASEDIR."local/ban.dat");
foreach($banlines as $banvalue){
$bancell = explode("|", $banvalue);
$banarray[]=$bancell[1];
}
//-------------------------- Запись IP в базу --------------------------------//
if(!in_array($ip_addr,$banarray)){
$fp=fopen(BASEDIR."local/ban.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"|$ip_addr|\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
$logdat = BASEDIR."local/datalog/ban.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,"$write\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
chmod ($fp, 0666);
chmod ($logdat, 0666);
$file=file($logdat);
$i = count($file);
if ($i>=$config_maxlogdat) {
$fp=fopen($logdat,"w");
flock ($fp,LOCK_EX);
unset($file[0],$file[1]);
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
}}}
//-------------------------- Запрет на вход --------------------------------//
$old_ips = file(BASEDIR."local/ban.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<4;$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 == 4) {
if($php_self!='/pages/banip.php'){header ("Location: ".BASEDIR."pages/banip.php?".SID); exit;}} //бан по IP
}
?>