PHP скрипт от легкого DDOS-a

Вставляем код в .htaccess если файла нет, создаем

RewriteCond %{http_cookie} !bb_mode=123123
#Google
RewriteCond %{REMOTE_ADDR} !66.249.0.0/16
#Rambler
RewriteCond %{REMOTE_ADDR} !81.19.64.0/24
RewriteCond %{REMOTE_ADDR} !81.19.65.0/24

RewriteCond %{REMOTE_ADDR} !81.19.66.0/24
#Yandex
RewriteCond %{REMOTE_ADDR} !77.88.24.0/24
RewriteCond %{REMOTE_ADDR} !77.88.25.0/24
RewriteCond %{REMOTE_ADDR} !77.88.26.0/24
RewriteCond %{REMOTE_ADDR} !77.88.27.0/24
RewriteRule .* redirect.html [L]


Создаем файл в redirect.html и вставляем код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="REFRESH" CONTENT="0;">
<title></title>
</head>
<body>
<script type="text/javascript">
document.cookie = 'bb_mode=123123; path=/';
</script>
</body>
</html>

Вставляем код в php файл файл Вашего сайта.

function checkddos($sec) {
$ban=0; $file="protect.dat"; $time=time(); $ip=$_SERVER[REMOTE_ADDR];
$whitelist=array("127.0.0.1","91.42.*.*","217.235.*.*","213.180.*.*","87.250.*.*","77.88.*.*","66.249.*.*","188.72.*.*");
$x=explode(".",$ip); foreach($whitelist as $ip1) if(preg_match("/^$x[0]\.($x[1]|\*)\.($x[2]|\*)\.($x[3]|\*)$/",$ip1)) return 0;
$f=@fopen($file,"r"); if($f) {clearstatcache(); flock($f,LOCK_SH); $r=@fread($f,filesize($file)); fclose($f);}
$a=unserialize($r);
if($a[$ip]+$sec>=$time) $ban=1; $a[$ip]=$time;
foreach($a as $k=>$v) if($v+$sec+1<$time) unset($a[$k]);
file_put_contents($file,serialize($a),LOCK_EX);
return $ban;
}
if(checkddos(1)) { die("Oops..."); exit(); }


QR Code
QR Code faq:ddos (generated for current page)