При запуске логинится нормально потом пишет: Use of unitialized valie $m in concatenaation (.) or string at c:\stript.pl line 58. .error
Вот нашол другой скрипт и тоже на перле PHP: #!/usr/bin/perl use warnings; use strict; use IO::Socket; $|=1; # конфиг ########################### my ($email, $pass) = ('e-mail', 'pass'); # логин/пасс my $sex = 2; # ПОЛ. 0 - любой, 1 - женский, 2 - мужской my $years = 0; # ВОЗРАСТ. 0 - до 18-ти, 1 - 18-26, 2 - от 27-ми my $num = 20000; # сколько человек пригласить ##################################### my ($answer, $stop) = (undef, 0); my $socket = IO::Socket::INET->new('vkontakte.ru:80') || die "\nCan't Connect To Vkontakte.ru\n"; my $content = "email=$email&pass=$pass"; print $socket "POST /login.php HTTP/1.1\r\n" ."Host: vkontakte.ru\r\n" ."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20\r\n" ."Referer: http://vkontakte.ru/\r\n" ."Cookie: remixlang=0; remixchk=5\r\n" ."Connection: close\r\n" ."Content-Type: application/x-www-form-urlencoded\r\n" ."Content-Length: ". length ($content) ."\r\n\r\n" .$content; { local $/ = undef; $answer = <$socket>; close $socket } my @data = $answer =~ /remixmid=(\d+) .* remixpass=([a-f0-9]{32}) .* remixsid=([a-f0-9]{56})/xs; if (scalar @data == 3) {&log("[+] GET DATA FROM $email\n")} else {&log("[-] CAN'T GET DATA FROM $email\n"); exit } while ($num > $stop) { $socket = IO::Socket::INET->new('vkontakte.ru:80') || die "\nCan't Connect To Vkontakte.ru\n"; $content = "act=a_search&st=0&c=0&s=$sex&y=$years&id=0"; print $socket "POST /matches.php HTTP/1.1\r\n" ."Host: vkontakte.ru\r\n" ."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20\r\n" ."Content-Type: application/x-www-form-urlencoded\r\n" ."Connection: close\r\n" ."X-Requested-With: XMLHttpRequest\r\n" ."Referer: http://vkontakte.ru/matches.php?act=search\r\n" ."Cookie: remixlang=0; remixchk=5; remixmid=$data[0]; remixemail=$email; remixpass=$data[1]; remixsid=$data[2]\r\n" ."Pragma: no-cache\r\n" ."Content-Length: ". length ($content) ."\r\n\r\n" .$content; { local $/ = undef; $answer = <$socket>; close $socket } my ($id) = $answer =~ m{href='id(\d+)'>}; next if !defined $id; $content = "act=a_search&st=0&c=0&s=$sex&y=$years&id=$id"; $socket = IO::Socket::INET->new('vkontakte.ru:80') || die "\nCan't Connect To Vkontakte.ru\n"; print $socket "POST /matches.php HTTP/1.1\r\n" ."Host: vkontakte.ru\r\n" ."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20\r\n" ."Content-Type: application/x-www-form-urlencoded\r\n" ."Connection: close\r\n" ."X-Requested-With: XMLHttpRequest\r\n" ."Referer: http://vkontakte.ru/matches.php?act=search\r\n" ."Cookie: remixlang=0; remixchk=5; remixmid=$data[0]; remixemail=$email; remixpass=$data[1]; remixsid=$data[2]\r\n" ."Pragma: no-cache\r\n" ."Content-Length: ". length ($content) ."\r\n\r\n" .$content; { local $/ = undef; $answer = <$socket>; close $socket } if ($answer =~ m{200 OK}) {&log("[+] INVITE $id\n")} else {&log("[-] CAN'T INVITE $id\n")} $stop++; sleep 3; } sub log { open LOG, '>>', 'log.txt'; print LOG $_[0]; print $_[0]; close LOG; } Работает на ура
Всем привет! У меня скрипт неработает. В логе выдает ошибку: CAN'T GET DATA FROM «мыло для логина» В чем может быть дело?
Т.к. тема не закрыта... Захотелось принять "парочку" предложений. Собственно взяв скрипт: /showpost.php?p=1023988&postcount=17 Он не работал, ведь он устарел. Немного изменив его... он заработал, ну как уже писалось капча, на долго его не хватило, собственно он сам: PHP: ############################### # (c) [dei] 369-476-512 ############################### # mode by Radish ############ Config ############### $email = 'xxx@mail.ru'; $pass = 'xxx'; $count = 100; $city = 0; $sex = 1; $age = 0; ################################ use LWP::UserAgent; use HTTP::Cookies; my $ua = LWP::UserAgent->new; $ua->agent('Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1'); $ua->cookie_jar(HTTP::Cookies->new(file => 'cookies.txt', autosave => 1)); sub login( $$ ) { my $em = $_[0]; my $pa = $_[1]; $em =~ s/@/%40/; my $req = HTTP::Request->new(POST=>'http://vkontakte.ru/login.php'); $req->referer('http://vkontakte.ru/'); $req->content_language('ru'); $req->content_type('application/x-www-form-urlencoded'); $req->content("email=$em&pass=$pa"); my $result = $ua->request($req); if($result->code == 302) { return 1; } } sub myrand( $ ) { my $int=''; for(my $i=1;$i<=$_[0];$i++) { $int .= int(rand(10)) } return $int; } sub accepts { my $req = HTTP::Request->new(GET=>'http://vkontakte.ru/matches.php?act=search'); $req->referer('http://vkontakte.ru/groups.php?'.myrand(5)); my $result = $ua->request($req); $result->content =~ /searchMatch\((\d+), '(\w+)'\)/; my $m = $1; my $hash = $2; sleep(1); for(my $i=0;$i<$count;$i++) { $req = HTTP::Request->new(POST=>'http://vkontakte.ru/matches.php'); $req->referer('http://vkontakte.ru/matches.php?act=search'); $req->header('X-Requested-With: XMLHttpRequest'); $req->content_type('application/x-www-form-urlencoded'); $req->content('act=a_search&st=0&c='.$city.'&s='.$sex.'&y='.$age.'&id='.$m.'&hash='.$hash); $result = $ua->request($req); print '.'; $|++; if(!($result->content =~ /searchMatch\((\d+), '(\w+)'\)/)) { die "error\n"; } $m = $1; $hash = $2; sleep(2); } print "\ndone\n"; } if(!login($email,$pass)) { die "bad acc\n"; } else { print "use $email\n"; } &accepts; В POST запрос добавлен hash.