Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [PERL]Multi-thread Proxy Scanner by Sharky (https://forum.antichat.xyz/showthread.php?t=108222)

Sharky 26.02.2009 22:41

[PERL]Multi-thread Proxy Scanner by Sharky [Human & Server]]
 
Многопоточный прокси сканнер by Sharky

Скриншот:
http://img214.imageshack.us/img214/54/screen.jpg


Описание:

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


Запуск

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

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

Серверная версия ( ссылки в конце поста ):
[*] Через консоль:
Код:

perl prox2.pl [start ip] [end ip] [port] [timeout (Default = 10)] [threads (Default =  50 )] [file for good proxies (Default = 'proxy.txt')]
[*] Пример:
Код:

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
Да прибудет с вами анонимность (с)

BuG_4F 26.02.2009 23:09

Ух ! Огромное спасибо !
А можно реализовать так, чтобы просто запустить .pl и потом результаты в текстовике смотреть ?
Чтоб например через шелл запустить ...

Romaxa55 26.02.2009 23:10

Спасибо РЕСПЕКТ ЧЕЛ, то что нужно!!!!!! Молодца, работает на ура!!!! ++++

Kaimi 26.02.2009 23:15

Цитата:

$ua->proxy( ['http'] => 'http://localhost:808' );
ээ?

Sharky 26.02.2009 23:18

Цитата:

Сообщение от Kaimi
ээ?

простите извините :) не усмотрел :)

UPD: поправил

Gaus 26.02.2009 23:21

Спс большое,хотел написать что то подобное!

Foxer007 26.02.2009 23:39

Всё ввожу и тупо стоит на месте

Sharky 26.02.2009 23:45

Цитата:

Сообщение от BuG_4F
Ух ! Огромное спасибо !
А можно реализовать так, чтобы просто запустить .pl и потом результаты в текстовике смотреть ?
Чтоб например через шелл запустить ...

добавил...смотри первый пост

N19hTW0lF 27.02.2009 22:51

Классные работы +

mrTUZ 27.02.2009 23:01

Молодец! Так держать! ;)


Время: 10:24