[PERL]Multi-thread Proxy Scanner by Sharky

Discussion in 'PHP' started by Sharky, 26 Feb 2009.

  1. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    [PERL]Multi-thread Proxy Scanner by Sharky [Human & Server]]

    Многопоточный прокси сканнер by Sharky

    Скриншот:
    [​IMG]


    Описание:

    [!] Сканит диапазон IP на наличие проксиков
    [!] Многопоточнсть
    [!] Сканит быстро :)
    [!] Прост в обращении
    [!] Чекает найденные проксики на валидность ( посредством парсинга гугла )


    Запуск

    Человерку понятная версия:

    [*] Сохранить сорец в файл prox.pl или скачать по ссылкам внизу поста и разархивировать

    [*] Тыкнуть по получившемуся ярлычку

    [*] через консоль:
    Code:
    perl prox.pl
    [*] Далее просто вводить всё что просит

    Серверная версия ( ссылки в конце поста ):

    [*] Через консоль:
    Code:
    perl prox2.pl [start ip] [end ip] [port] [timeout (Default = 10)] [threads (Default =  50 )] [file for good proxies (Default = 'proxy.txt')]
    [*] Пример:
    Code:
    perl prox2.pl 192.168.1.1 192.168.255.255 3128 10 50 proxies.txt

    Source (человеку понятной версии):

    PHP:
    #!/usr/bin/perl
    use IO::Socket;
    use 
    LWP::UserAgent;
    use 
    HTTP::Request;
    use 
    threads;
    use 
    threads::shared;

    my @range shared;
    my $i shared;
    my $proxylist shared;
    $|  = 
    1;
    $nn "\r\n";
    $g  0;
    print 
    "
    ######################################################
    ###                                                ###
    ###                 Proxy Scanner                  ###
    ###               with love by Sharky              ###
    ###               Special for Antichat             ###
    ###                       ***                      ### 
    ###                                                ###
    ######################################################
    $nn $nn;

    print 
    "[?] Start IP: ";
    $start = <STDIN>;
    print 
    "[?] End IP: ";
    $end = <STDIN>;
    print 
    "[?] Port: ";
    $port = <STDIN>;
    print 
    "[?] Timeout: ";
    $timeout = <STDIN>;
    print 
    "[?] Threads: ";
    $threads = <STDIN>;
    print 
    "[?] File for good proxies: ";
    $proxylist = <STDIN>;

    @
    range ip_range();
    $size  scalar @range;

    threads();

    sub threads {
        print 
    $nn"[+] $size IP`s for Scaning." $nn;
        print 
    "[+] Start Scaning." $nn $nn;
        for ( 
    .. $threads ) { $trl[$_] = threads->create( \&scan$_ ); }
        for (@
    trl) { $_->join; }
    }

    sub scan {
        while (@
    range) {
            { 
    lock(@range); $cur shift @range; }
            
    my $sock = new IO::Socket::INET(
                
    PeerAddr  => $cur,
                
    PeerPort  => $port,
                
    PeerProto => 'tcp',
                
    Timeout   => $timeout
            
    );
            if ( !
    $sock ) {
                { 
    lock($i); $i++; }
            }
            else {
                
    check();
                
    close $sock;
                { 
    lock($i); $i++; }
            }
            
    $percent = ( $i $size ) * 100;
            
    $percent sprintf"%.1f"$percent );
            print 
    "[%] $percent% [Good Proxies] $g\r";
        }
    }

    sub ip_range {
        
    my @ips;
        
    $s inet_aton($start);
        
    $e inet_aton($end);

        
    $s_ip unpack'N'$s );
        
    $e_ip unpack'N'$e );

        for ( 
    $o $s_ip $o $e_ip $o++ ) {
            
    $o pack'N'$o );
            
    $ip inet_ntoa($o);
            
    push @ips$ip;
            
    $o unpack'N'$o );
        }
        
    chomp @ips;
        return @
    ips;
    }

    sub check {
        
    my $ua = new LWP::UserAgent;

        
    $ua->agent("Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        
    $ua->proxy( ['http'] => 'http://'.$cur.":".$port );

        
    $surl "http://google.com/index.php";
        
    $req = new HTTP::Request GET => $surl;

        
    $document $ua->request($req);
        
    $content  $document->content;
        if ( 
    $content =~ /google/ ) {
            
    $g++;
            print 
    "[OK] $cur:$port$nn;
            
    openFILE">>$proxylist);
            print 
    FILE "$cur:$port\n";
            
    close(FILE);
        }
    }

    #with love by Sharky
    Либо скачать архивом:

    Человеку понятная версия :) :
    Rapidshare.com
    Webfile.ru
    Dump.ru

    Серверная версия:
    Rapidshare.com
    Webfile.ru
    Dump.ru
    Да прибудет с вами анонимность (с)
     
    #1 Sharky, 26 Feb 2009
    Last edited: 27 Feb 2009
    6 people like this.
  2. BuG_4F

    BuG_4F Member

    Joined:
    20 May 2008
    Messages:
    88
    Likes Received:
    67
    Reputations:
    5
    Ух ! Огромное спасибо !
    А можно реализовать так, чтобы просто запустить .pl и потом результаты в текстовике смотреть ?
    Чтоб например через шелл запустить ...
     
    1 person likes this.
  3. Romaxa55

    Romaxa55 Banned

    Joined:
    19 Oct 2005
    Messages:
    144
    Likes Received:
    30
    Reputations:
    4
    Спасибо РЕСПЕКТ ЧЕЛ, то что нужно!!!!!! Молодца, работает на ура!!!! ++++
     
    #3 Romaxa55, 26 Feb 2009
    Last edited: 26 Feb 2009
    2 people like this.
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    ээ?
     
    _________________________
    2 people like this.
  5. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    простите извините :) не усмотрел :)

    UPD: поправил
     
    #5 Sharky, 26 Feb 2009
    Last edited: 26 Feb 2009
  6. Gaus

    Gaus Member

    Joined:
    8 Feb 2009
    Messages:
    136
    Likes Received:
    36
    Reputations:
    3
    Спс большое,хотел написать что то подобное!
     
    1 person likes this.
  7. Foxer007

    Foxer007 Member

    Joined:
    9 Nov 2008
    Messages:
    0
    Likes Received:
    14
    Reputations:
    -5
    Всё ввожу и тупо стоит на месте
     
  8. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    добавил...смотри первый пост
     
    1 person likes this.
  9. N19hTW0lF

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

    Joined:
    11 Jul 2007
    Messages:
    188
    Likes Received:
    140
    Reputations:
    4
    Классные работы +
     
    3 people like this.
  10. mrTUZ

    mrTUZ Active Member

    Joined:
    17 May 2008
    Messages:
    63
    Likes Received:
    155
    Reputations:
    5
    Молодец! Так держать! ;)
     
    3 people like this.
  11. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Sharky, кул пошел тестить! +
     
    2 people like this.
  12. syava

    syava Member

    Joined:
    4 Feb 2009
    Messages:
    16
    Likes Received:
    7
    Reputations:
    0
    функционал:
    оно проверяет только http прокси
    оно не проверяет их на анонимность
    реализация:
    самый первый пиздец это ip_range(), тут автор генерит ип для сканирования заранее, если указать диапазон с 192.168.1.1 по 192.170.1.1 то процесс перла уже занимает 37 метров, если диапазон больше, то вообще пзц.
    дальше автор зачем то сначала пытается открыть сокет, а затем уже при помощи lwp получить страницу, а ведь это можно и самим lwp сделать. так же тут вместо гугля можно получать страничку сайта типа 2ip.ru и там проверить по наличию реального ип анонимный ли это прокси. ну мелкие косяки на фоне того что выше рассматривать смысла нет.

    да N19hTW0lF, работы просто заe***ельские.
     
  13. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    можешь сдеать лучше - сделай :) я учу perl ... то что я сделал мне помогает ... думаю вопросы излишни
     
  14. syava

    syava Member

    Joined:
    4 Feb 2009
    Messages:
    16
    Likes Received:
    7
    Reputations:
    0
    а я так не думаю, зачем ты выкладываешь своё говно для людей? вот запустит человек твою ху*ню с большим диапазоном, ебнет свой дедик... и огорчица :mad:
     
  15. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    я диапазоны по ляму забивал... полёт нормальный :) не нравится не ешь (с)
    тем не менее спасибо за критику
     
  16. syava

    syava Member

    Joined:
    4 Feb 2009
    Messages:
    16
    Likes Received:
    7
    Reputations:
    0
    лучше бы ты мимо пролетал или хотя бы приземлялся в теме "полезных скриптов".
    > не нравится не ешь
    я и не собирался, лишь бы другие не подавились :D
    >тем не менее спасибо за критику
    всегда пожалуйста
     
    3 people like this.
  17. Gaus

    Gaus Member

    Joined:
    8 Feb 2009
    Messages:
    136
    Likes Received:
    36
    Reputations:
    3
    Можно попробовать увеличить скорость работы чека создав на сайте каком то страничку с одним словом(чтоб быстрее грузилась)
     
  18. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    не существенно :) прокси не так быстро находятся чтоб обращать внимание на такие пустяки