Proxy grabber & checker off Perl

Discussion in 'PHP' started by K0dZer0, 19 Aug 2010.

  1. K0dZer0

    K0dZer0 Banned

    Joined:
    30 Jun 2010
    Messages:
    49
    Likes Received:
    2
    Reputations:
    0
    Всем привет .
    Запостил в эту тему , так как в разделе - анонимность и безопасность врядли кто подскажет.
    Там мой вопрос , по поводу скрипта на Perl собирающего прокси и соксы с сайтов , затем их чекающий и сортирующий .
    https://forum.antichat.net/thread169321.html
    Куда смотреть ?
    Где смотрятся подробные описания ошибок от Perl ?
    Зарание спасибо за понимание , думаю скриптик и вам будет полезен .
     
  2. Aligatоr

    Aligatоr New Member

    Joined:
    17 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    В кратце по порядку:
    Открываешь текстовый файл и пишешь в нём код скрипта. Сохраняешь например под именем grub.pl и в консоли пишешь:
    perl grub.pl
    Если будут ошибки смотришь (в консоли) какая строка и какая ошибка. Всё, остаётся только исправить и юзать. Удачи:)
     
  3. Aligatоr

    Aligatоr New Member

    Joined:
    17 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Code:
    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use IO::Socket::INET;
    
    # SOCKS Proxy List Checker
    # Coded by sToRm
    # www.GoNullYourself.org
    #
    # Accepts proxy list in
    # 1.2.3.4:1111 format
    
    
    
    if ( @ARGV != 1 ) {
        print "Usage: $0 <file>\n";
        exit(1);
    }
    
    open(PROXIES, "<$ARGV[0]") or die($ARGV[0].' wasn\'t found');
    
    open(VALID, '>>valid.txt') or die('valid.txt isn\'t writable');
    
    my ($connectable, $unconnectable, $invalid) = (0, 0, 0);
    
    while(<PROXIES>) {
    
        chomp($_);
        
        my $line = $_;
        
        if ($line =~ /([0-9]){1,3}\.([0-9]){1,3}\.([0-9]){1,3}\:([0-9]){1,5}/) {
        
            my @proxy = split(/:/, $line);
            
            my $SOCK = IO::Socket::INET->new (
                PeerAddr => $proxy[0],
                PeerPort => $proxy[1],
                Timeout  => 2,
            );
            
            if ( $SOCK ) {
                print "[+] $line\n";
                print VALID $line."\n";
                ++$connectable;
            } else {
                print "[-] $line\n";
                ++$unconnectable;
            }
        } else {
            print "[-] $line is invalid\n";
            ++$invalid;
        }
    }
    
    my $total = $connectable + $unconnectable + $invalid;
    
    print "\nProxy list exhausted\n";
    print "Connectable:   $connectable\n";
    print "Unconnectable: $unconnectable\n";
    print "Invalid Lines: $invalid\n";
    print "Total Checked: $total\n";
    print "Working proxies saved to valid.txt\n";
    Скрипт рабочий, проверил только что.
     
  4. brunchik

    brunchik Banned

    Joined:
    7 Jan 2011
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    Че врешь то?
     
    #4 brunchik, 16 Jan 2011
    Last edited by a moderator: 16 Jan 2011
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    brunchik не делайте оверквоттинг. Скрипт рабочий, правда это не проверка на соксы, а проверка на то, открыт ли порт или нет.
     
    _________________________
  6. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    вот еще простенький скрипт..
    многопоточный.

    PHP:
    #!/usr/bin/perl -w
    #(c)dpe

    use LWP::UserAgent;
    use 
    threads;
    use 
    threads::shared;
    my @sites shared;
    ###############################
    my $threads =       1;          # Кол-во потоков
    my $proxy =       'proxy.txt';# Файл с награбленными прокси
    ###############################
    open (F">>$proxy") || die("Could not open ".$proxy." file!!!");
    @
    sites qw(http://fineproxy.ru/ http://hideme.ru/proxy-list/http/ http://hideme.ru/proxy-list/http-connect/ http://hideme.ru/proxy-list/socks4 http://hideme.ru/proxy-list/socks5/ http://www.proxydb.ru/ http://www.anonproxy.boom.ru/proxy.html http://spys.ru/ http://russianproxy.ru/proxy_list_http_fastest http://spys.ru/proxys/US/ );
    for(0..$threads) {$trl[$_] = threads->create(\&Grab$_);}
    for(@
    trl) { $_->join; }
    sub Grab
    {
    while (@
    sites){
    my $site shift @sites;
    my $ua = new LWP::UserAgent;
    $ua->timeout(30);
    my $data $ua->get($site)->as_string;
    print 
    "Grabbing proxys from: ".$site." ...\n";
    while(
    $data =~/(\d*\.\d*\.\d*\.\d*)\:(\d*)/msgi) {
         print 
    $1.":".$2."\n";
         print  $
    1.":".$2."\n";
    }
    print 
    "#############################\n"
    }
    }
    close (F);
     
  7. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    только это
    Code:
    /(d*.d*.d*.d*):(d*)/
    
    заменить на

    Code:
    ~/(\d*\.\d*\.\d*\.\d*)\:(\d*)/
    форум регулярку испортил..