ghtl
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Cheery Извини пропустил $send. Я подправил своё сообщение и добавил $send. Напишу по новой чтобы было понятней. Вот первый случай код работает проверял. Код: #!/usr/bin/perl use IO::Socket; print "Content-type: text/html\n\n"; sub urldecode{ local($val)=@_; $val=~s/\+/ /g; $val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge; return $val; } $port = 80; $host = domen.ru; if($ENV{'REQUEST_METHOD'} eq 'GET'){ $query=$ENV{'QUERY_STRING'}; } elsif($ENV{'REQUEST_METHOD'} eq 'POST'){ sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'}); } if($query eq ''){ print <<HTML; <html> <body> <form method="post" action="pipka.cgi"> Кол-во повторений <input type="text" name="n" value="5" size="3"><br> <input type="submit" value="Пшел"> </form> </body></html> HTML } else{ @formfields=split(/&/,$query); foreach(@formfields){ if(/^say=(.*)/){$say=urldecode($1);} if(/^n=(.*)/){$n=urldecode($1);} if(/^num=(.*)/){$num=urldecode($1);} } $send="number=1&ch=Yes&message=$say"; $send=~s/\s/+/g; $l=length($send); for($i=1;$i<=$n;$i++){ $socket = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port,Proto => "TCP"); print $socket "POST /cgi-bin/ikonboard.cgi HTTP/1.1\n"; print $socket "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\n"; print $socket "Accept-Language: ru\n"; print $socket "Content-Type: application/x-www-form-urlencoded\n"; print $socket "Accept-Encoding: gzip, deflate\n"; print $socket "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2)\n"; print $socket "Host: $host\n"; print $socket "Content-Length: 195\n"; print $socket "Connection: Keep-Alive\n"; print $socket "\n"; print $socket "st=&act=Post&CODE=01&s=3b992a40970b80f697681e7cbeb1967c&f=1&UserName=123&TopicTitle=1222222&TopicDesc=&iconid=0& Post=2222222223+33333333333333333&enableemo=yes&enablesig=yes&submit=Post+New+Topic\n"; } } | Второй вариант, пробуем через проксю. Код: #!/usr/bin/perl use IO::Socket; print "Content-type: text/html\n\n"; sub urldecode{ local($val)=@_; $val=~s/\+/ /g; $val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge; return $val; } $port = 29992; # НОМЕР ПОРТА $host = 68.59.187.0; # АДРЕС ПРОКСИ if($ENV{'REQUEST_METHOD'} eq 'GET'){ $query=$ENV{'QUERY_STRING'}; } elsif($ENV{'REQUEST_METHOD'} eq 'POST'){ sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'}); } if($query eq ''){ print <<HTML; <html> <body> <form method="post" action="pipka.cgi"> Кол-во повторений <input type="text" name="n" value="5" size="3"><br> <input type="submit" value="Пшел"> </form> </body></html> HTML } else{ @formfields=split(/&/,$query); foreach(@formfields){ if(/^say=(.*)/){$say=urldecode($1);} if(/^n=(.*)/){$n=urldecode($1);} if(/^num=(.*)/){$num=urldecode($1);} } $send="number=1&ch=Yes&message=$say"; $send=~s/\s/+/g; $l=length($send); for($i=1;$i<=$n;$i++){ $socket = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port,Proto => "TCP"); print $socket "POST domen.ru/cgi-bin/ikonboard.cgi HTTP/1.1\n"; # ЗДЕСЬ УКАЗЫВАИМ ПОЛНЫЙ ПУТЬ СКРИПТА, ТАК КАК ЗАПРОС ИДЁТ ЧЕРЕЗ ПРОКСЮ. ПРАВИЛЬНО? print $socket "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\n"; print $socket "Accept-Language: ru\n"; print $socket "Content-Type: application/x-www-form-urlencoded\n"; print $socket "Accept-Encoding: gzip, deflate\n"; print $socket "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2)\n"; print $socket "Host: $host\n"; print $socket "Content-Length: 195\n"; print $socket "Connection: Keep-Alive\n"; print $socket "\n"; print $socket "st=&act=Post&CODE=01&s=3b992a40970b80f697681e7cbeb1967c&f=1&UserName=123&TopicTitle=1222222&TopicDesc=&iconid=0& Post=2222222223+33333333333333333&enableemo=yes&enablesig=yes&submit=Post+New+Topic\n"; } } |
Специально внес перенос в строку с параметрами, чтобы не портить форматирование топика. /Cheery/ | Всего записей: 29 | Зарегистр. 17-12-2004 | Отправлено: 00:04 25-01-2005 | Исправлено: Cheery, 00:43 25-01-2005 |
|