[Intro] Много писать не буду, все понятно! Надоело видеть ошибку 504 при заходе на свой сайт? Я помогу Вам избавиться от этого с помощью Firewall. Естественно защитить от огромного кол-ва ботов вы не сможете, однако [Script] PHP: <?php error_reporting(0); $array = array('66.249.64.', '81.19.64.', '89.208.19.', '213.180.206.', '72.30.0.', '87.250.230.', '213.180.216.', '222.0.0.'); $position = explode('.', $_SERVER['REMOTE_ADDR']); $pos = $position[0].'.'.$position[1].'.'.$position[2].'.'; if(!in_array($pos, $array)) { $dir = 'bots/'; $cook = strrev(sha1('Fuck you' . md5(getenv('HTTP_USER_AGENT')))); function ban() { system("/bin/sudo pfctl -t dl -T add " . escapeshellarg($_SERVER["REMOTE_ADDR"])); die('Firewall has been you!!!<br/>Cookie must be on'); } if (empty($_COOKIE['ddos'])) { $counter = @file($dir . $_SERVER["REMOTE_ADDR"]); if(count($counter) > 5) ban(); setcookie('ddos', $cook, time() + 9800); $f = @fopen($dir . $_SERVER["REMOTE_ADDR"], "a"); fwrite($f, "Antiddos by xeka.ru\r\n"); fclose($f); header('Location: ' . $_SERVER['PHP_SELF']); die(); } if ($_COOKIE['ddos'] !== $cook) { ban(); die(); } if ($_COOKIE['ddos'] == $cook) { system("/bin/sudo pfctl -t dl -T del " . $_SERVER["REMOTE_ADDR"]); @unlink($dir . $_SERVER["REMOTE_ADDR"]); } } ?> Script/pastebin.x3k.ru [Description] $array - массив с IP адресами поисковых ботов, которых мы НЕ баним! $dir - папка, куда будем записывать файлы с IP адресами плохих отрубей. CHMOD права на папку 0777 $cook - пишите что хотите, записываем шифр в куки function ban() - Создаем функцию бана с помощью команды к файрволу. Далее проверки и отделение хороших от отрубей Copyright xeka.ru