Показать сообщение отдельно

  #4  
Старый 04.08.2008, 15:26
Basurman
Постоянный
Регистрация: 10.11.2006
Сообщений: 416
С нами: 10263386

Репутация: 849
По умолчанию

ПАРСЕР ВЕРСИЙ

Скрипт работает по списку.
http:// указывать обязательно

Создает после выполнения 2 файлика: output.txt и log.txt

В log.txt хранится весь лог работы, данные ДОБАВЛЯЮТСЯ.
В output.txt хранится лог по обработке текущего списка. Предыдущие результаты стираются. В этот файл не попадают сайты, версию у которых определить не удалось...

P.S. Кому не нужны версии старше определенной, удаляем 2 строки комментария в исходнике и добавляем 1 сразу после них

Код:
#!/usr/bin/perl
use LWP::UserAgent;
use Time::tm;

print "\n############# Coppermine Version Parser v0.2 ###############\n\n";
if (@ARGV != 1) { notvalid(); exit();}

my $uagent = LWP::UserAgent->new();

open (INPUT, "< input.txt");
open (OUTPUT, "> output.txt");
open (LOG, ">> log.txt");
print LOG "======================== ".localtime()." ========================\n\n";

while ($url = <INPUT>) {
chomp($url);

my $req = HTTP::Request->new(GET => "$url");
my $res = $uagent->request($req);
$mystr=$res->as_string;


if ($mystr=~ /\<\!\-\-Coppermine\s+Photo\s+Gallery\s+(\d+.\d+.\d+)/) 
{
	$tolog = "[+] [".localtime()."] ".$url." --> ".$1."\n";
#	if ($1=~ /1.4.18/) { print LOG $tolog; print $tolog; }
#	else { print LOG $tolog; print OUTPUT $tolog; print $tolog;}
	print LOG $tolog; print OUTPUT $tolog; print $tolog;
} 
else
{
	$tolog = "[-] [".localtime()."] ".$url." --> Version unknown...\n";
	print LOG $tolog; print $tolog;
}

}
print LOG "\n\n";
close INPUT;
close OUTPUT;
close LOG;

sub notvalid()
{

print "Usage: parser.pl <site list>\r\n";
print "Example: parser.pl input.txt\r\n\nNOTE: URLs in list must be ABSOLUTE!!!\n";


}
 
Ответить с цитированием