[PERL] Помогите разобраться

Тема в разделе "Мегафлуд", создана пользователем vitalikis, 25 янв 2009.

Статус темы:
Закрыта.
  1. vitalikis

    vitalikis Создатель

    Регистр.:
    16 апр 2007
    Сообщения:
    31
    Симпатии:
    2
    Вот нашол пару скриптов для контакта
    Они отвечают на предложения пользователей, но ни один не работает

    Код:
    #!/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 МЫЛО

    Код:
     #!/usr/bin/perl -w 
    ############################### 
    # (c) [dei] 369-476-512 
    ############################### 
    
    ############ Config ############### 
    $email = 'xxxx@mail.ru'; 
    $pass = '111'; 
    $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+))/; 
        my $m = $1; 
         
        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); 
            $result = $ua->request($req); 
    
            print '.'; 
            $|++; 
    
            if(!($result->content =~ /searchMatch((d+))/)) { die "error\n"; } 
            $m = $1; 
         
            sleep(1); 
        } 
        print "\ndone\n"; 
    } 
    
    if(!login($email,$pass)) { die "bad acc\n"; } 
    else { print "use $email\n"; } 
    &accepts; 
    А этот: Use of uninitialized value $m in concatenation (.) or string at 1.pl line 58.

    .error
     
Статус темы:
Закрыта.