Вход Регистрация
Файл: sistem/flud.php
Строк: 26
<?php # Created by Up
// Хотел анти флуд едокий сделать, но в связи с тем что, если уж захотят положить сервер, этот файл им только поможет...файл не используется системой, а удалять лень
$pack='';
$time=time();
/*for($i=0; $i<100000; ++$i)
    $pack.=pack('LLc',ip2long(rand(10,255).'.'.rand(10,255).'.'.rand(10,255).'.'.rand(10,255)),$time,1);
*/
$new_ip=true;
$id=0;
$ip=ip2long($_SERVER['REMOTE_ADDR']);
$fp=fopen($config['OTS'].'sistem/data/flud.dat','r+b');
flock($fp,LOCK_EX);
while(
$bin=fread($fp,9))
 {
    ++
$id;
    
$str=unpack('Lip/Ltime/cflud',$bin);
    if(
$str['time']+60<$time and ($str['flud']<30 or $str['time']+60*60<$time))
        continue;
    if(
$str['ip']!==$ip)
     {
        
$pack.=$bin;
        continue;
     }
     else
         {
            if(
$str['flud']>=30)
                exit(
'Sorry, ip '.$_SERVER['REMOTE_ADDR'].' for blocked!');
            
$new_ip=false;
            unset(
$pack);
            
fseek($fp,(($id*9)-9));
            
fwrite($fp,pack('LLc',$ip,$str['time'],(++$str['flud'])));
            break;
         }
 }

if(
$new_ip)
 {
    
fseek($fp,0);
    
ftruncate($fp,0);
    
fwrite($fp,$pack.pack('LLc',$ip,$time,1));
 }

fclose($fp);

unset(
$ip,$str,$bin,$new_ip,$time,$fp,$pack);

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