PDA

Просмотр полной версии : 1337zilla - Proxy Checker by GNUcious!


GNUcious
15.02.2009, 16:03
Ну, досталь новый ник, блатую как могу!... :-)
кароче, скрипт написана на перле, требует модуль Parallel::Forkmanger которого можно достать тут:
Parallel::Forkmanager
(http://search.cpan.org/CPAN/authors/id/D/DL/DLUX/Parallel-ForkManager-0.7.5.tar.gz)
софт проверает сразу 40 прокси и можно прибавить/убавить это число сменив 40 на нужную цифру во глове скрипта.

пишите тут если что нидь работает ни так как надо... :-)

#!/usr/bin/perl -w

#####################################ё#########
use IO::Socket; # the main module for connection
use Parallel::ForkManager; # Call to Fork manger
###############################################
&usage if(@ARGV < 2); # if arguments less then 2 die
my @proxys = do {open my $pfh, "<",shift || die $!;<$pfh> }; # proxies
my $output = shift; # output file where would go working proxies
my $forker = Parallel::ForkManager->new(40); # Define Fork Manager
my $url = "http://google.com"; # url to query proxy
###############################################
sub usage
{ print STDERR "USAGE: $0 [PROXIES FILE] [OUTPUT FILE]\n";
print STDERR "NOTE: proxy file should contain colon separated list of IP or DOMAIN and PORT\n";
print STDERR "Examples\n: www.spider-net.de:80\n89.206.8.242:8080\n";
exit 1;
}
###############################################
sub getPage
{ my($host,$url,$port) = @_; # proxy, url - what to query and port
my $sock = IO::Socket::INET->new( PeerAddr => $host,
PeerPort => $port,
Proto => "tcp",
Timeout => 3) || return 0;
print $sock "GET $url HTTP/1.0\r\n".
"HOST: $url\r\n".
"ACCEPT: */*\r\n".
"REFERER: GNUcious\r\n".
"USER-AGENT: 1337zilla - Proxy Checker by GNUcious v1.0 ".
"(Macintosh; U; PPC Mac OS X; en-us)\r\n\r\n";
close($sock);
return 1;
}
##############################################
foreach $proxies (@proxys)
{ chomp($proxies); # remove new line from proxy
$forker->start and next; # fork process and increase speed
my ($proxy,$port) = split(/:/,$proxies); # split proxy into IP and PORT
printf("Checking -> %-20s",$proxies); # nice look at the terminal
if(getPage($proxy,$url,$port))
{ open my $wpfh,">>",$output || die $!; # save proxy if it works
print $wpfh $proxies."\n";
close($wpfh);
print "\t[ OK ]";
}
else
{ print "\t[ FAIL ]";
}
print "\n";
$forker->finish; # finish process forking
}
$forker->wait_all_children; # wait all remain process and
exit 0; # end program, return 0 result (success)
###############################################

biophreak
16.02.2009, 17:07
1. Реферер не по rfc
2. Юзерагент совершенно левый...некоторые прокси режут...проверено
3. Почему бы в usage() не заюзать один print?

Остальное при детальном рассмотрении скажу, позже :)

syava
16.02.2009, 17:25
зачем этот костыль Parallel::Forkmanger если можно сделать async io с помощью select, poll, это было бы хотя бы интересно.
то что приходит в ответ вообще не анализируется, может прокси не анонимный, может там ошибка 4** или 5** или вообще какая левая хрень.
ху*ня короче.

GNUcious
16.02.2009, 18:03
1. Реферер не по rfc
2. Юзерагент совершенно левый...некоторые прокси режут...проверено
3. Почему бы в usage() не заюзать один print?

Остальное при детальном рассмотрении скажу, позже :)

3. там print реализован...
1. мне насрать на рфс...
2. прога свободна распространяетсья, может любой менять...


зачем этот костыль Parallel::Forkmanger если можно сделать async io с помощью select, poll, это было бы хотя бы интересно.
то что приходит в ответ вообще не анализируется, может прокси не анонимный, может там ошибка 4** или 5** или вообще какая левая хрень.
ху*ня короче.


прога проверяет жовой или нет прокси, на кой чорт мне 4* и 5* проверять?..

syava
16.02.2009, 18:11
>2. прога свободна распространяетсья, может любой менять...
ты видимо решил поиграть в GPL
>1. мне насрать на рфс...
очень плохо что тебе насрать на rfc, проект gnu (судя по нику и аве ты должен знать что это такое) как раз таки очень чтит стандарты
>прога проверяет жовой или нет прокси, на кой чорт мне 4* и 5* проверять?..
она проверяет открыт ли порт и больше ничего, тоже самое можно делать nmap'ом

GNUcious
16.02.2009, 18:30
2. прога свободна распространяетсья, может любой менять...
ты видимо решил поиграть в GPL

неа, GPL тема сложная, потому и не встовлял лицензию в скрипт...

очень плохо что тебе насрать на rfc, проект gnu (судя по нику и аве ты должен знать что это такое) как раз таки очень чтит стандарты

в етом ты прав, но я хотел сказать в етом проге насрать... :-)
имея в виду что прога савсем неоткуда... :-D словно с небес сволился... :-)

она проверяет открыт ли порт и больше ничего, тоже самое можно делать nmap'ом

прога проверяет открит ли тото порт каторый указан в файле... судя по логике если
тот порт аткрыт, то прокси у нас живой...

biophreak
17.02.2009, 11:25
Прошу прощения конечно, но прежде чем писать на перле, русский выучи нормально...

biophreak
17.02.2009, 20:04
3. там print реализован...

Одним принтом, а не 3-4 раза принт...если у Вас будет хелп в 50 строчек, то Вы 50 раз напишете print 'blablabla' ???

1. мне насрать на рфс...

А вот это плохо очень, поверьте....я уже выше писал, что некоторые прокси отбрасывают запросы, которые не подходят под рфц(я сталкивался один раз с таким....очень редко, но все же бывает)
Да и не даром-же РФЦ придумали

2. прога свободна распространяетсья, может любой менять...

Чем менять - легче свое сделать\юзать готовое имхо...


прога проверяет жовой или нет прокси, на кой чорт мне 4* и 5* проверять?..

А на тот, что у Вас получается обычный порт-чекер...анализировать ответ нужно для того, чтобы скажем проверить доступность через прокси именно нужного сайта, а не абы-какого-то ответа дождаться.
Плюс, если Вам попадется Codeen прокся, то Ваш чекер скажет, что она живая хорошая прокся, на деле окажется иначе :)

GNUcious
18.02.2009, 13:12
Прошу прощения конечно, но прежде чем писать на перле, русский выучи нормально...
спасибо учусь.... :-)

А на тот, что у Вас получается обычный порт-чекер...анализировать ответ нужно для того, чтобы скажем проверить доступность через прокси именно нужного сайта, а не абы-какого-то ответа дождаться. Плюс, если Вам попадется Codeen прокся, то Ваш чекер скажет, что она живая хорошая прокся, на деле окажется иначе

принято замечание, приму во внимание... :-)