
04.08.2008, 15:26
|
|
Постоянный
Регистрация: 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";
}
|
|
|