PDA

Просмотр полной версии : [PERL]Multi-thread Proxy Scanner by Sharky


Sharky
26.02.2009, 22:41
Многопоточный прокси сканнер 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 (человеку понятной версии):

#!/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 ( 0 .. $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;
open( FILE, ">>$proxylist" );
print FILE "$cur:$port\n";
close(FILE);
}
}

#with love by Sharky


Либо скачать архивом:

Человеку понятная версия :) :
Rapidshare.com (http://rapidshare.com/files/202890009/prox.rar.html)
Webfile.ru (http://webfile.ru/2985230)
Dump.ru (http://dump.ru/file/1917511)

Серверная версия:
Rapidshare.com (http://rs496.rapidshare.com/files/202913288/prox2.rar)
Webfile.ru (http://webfile.ru/2985478)
Dump.ru (http://dump.ru/file/1917904)
Да прибудет с вами анонимность (с)

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
ээ?
простите извините :) не усмотрел :)

UPD: поправил

Gaus
26.02.2009, 23:21
Спс большое,хотел написать что то подобное!

Foxer007
26.02.2009, 23:39
Всё ввожу и тупо стоит на месте

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

N19hTW0lF
27.02.2009, 22:51
Классные работы +

mrTUZ
27.02.2009, 23:01
Молодец! Так держать! ;)

mff
27.02.2009, 23:02
Sharky, кул пошел тестить! +

syava
27.02.2009, 23:29
функционал:
оно проверяет только http прокси
оно не проверяет их на анонимность
реализация:
самый первый пиздец это ip_range(), тут автор генерит ип для сканирования заранее, если указать диапазон с 192.168.1.1 по 192.170.1.1 то процесс перла уже занимает 37 метров, если диапазон больше, то вообще пзц.
дальше автор зачем то сначала пытается открыть сокет, а затем уже при помощи lwp получить страницу, а ведь это можно и самим lwp сделать. так же тут вместо гугля можно получать страничку сайта типа 2ip.ru и там проверить по наличию реального ип анонимный ли это прокси. ну мелкие косяки на фоне того что выше рассматривать смысла нет.

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

Sharky
27.02.2009, 23:38
функционал:
оно проверяет только http прокси
оно не проверяет их на анонимность
реализация:
самый первый пиздец это ip_range(), тут автор генерит ип для сканирования заранее, если указать диапазон с 192.168.1.1 по 192.170.1.1 то процесс перла уже занимает 37 метров, если диапазон больше, то вообще пзц.
дальше автор зачем то сначала пытается открыть сокет, а затем уже при помощи lwp получить страницу, а ведь это можно и самим lwp сделать. так же тут вместо гугля можно получать страничку сайта типа 2ip.ru и там проверить по наличию реального ип анонимный ли это прокси. ну мелкие косяки на фоне того что выше рассматривать смысла нет.

да N19hTW0lF, работы просто заe***ельские.
можешь сдеать лучше - сделай :) я учу perl ... то что я сделал мне помогает ... думаю вопросы излишни

syava
27.02.2009, 23:45
можешь сдеать лучше - сделай :) я учу perl ... то что я сделал мне помогает ... думаю вопросы излишни
а я так не думаю, зачем ты выкладываешь своё говно для людей? вот запустит человек твою ху*ню с большим диапазоном, ебнет свой дедик... и огорчица :mad:

Sharky
27.02.2009, 23:51
а я так не думаю, зачем ты выкладываешь своё говно для людей? вот запустит человек твою ху*ню с большим диапазоном, ебнет свой дедик... и огорчица :mad:
я диапазоны по ляму забивал... полёт нормальный :) не нравится не ешь (с)
тем не менее спасибо за критику

syava
27.02.2009, 23:57
я диапазоны по ляму забивал... полёт нормальный :) не нравится не ешь (с)
тем не менее спасибо за критику
лучше бы ты мимо пролетал или хотя бы приземлялся в теме "полезных скриптов".
> не нравится не ешь
я и не собирался, лишь бы другие не подавились :D
>тем не менее спасибо за критику
всегда пожалуйста

Gaus
28.02.2009, 23:21
Можно попробовать увеличить скорость работы чека создав на сайте каком то страничку с одним словом(чтоб быстрее грузилась)

Sharky
01.03.2009, 00:23
Можно попробовать увеличить скорость работы чека создав на сайте каком то страничку с одним словом(чтоб быстрее грузилась)
не существенно :) прокси не так быстро находятся чтоб обращать внимание на такие пустяки