Re: Проба пера: статья о создании зеркала для NOD32
Добавлено: 2010-10-04 17:12:14
Товарщи читал тему но так и не нашел подскажите как зделать чтоб выкачивал ток для v4 а то качает все подряд за ранее благодарен
Танки встречай шквалом огня, твёрдо запомни - горит и броня
https://forum.lissyara.su/
в том скрипте что сверху замени my @google на большой который кинул снизу.server801 писал(а):Эт че и куда?
выложите пожалуйста исправленный скриптthefree писал(а):в том скрипте что сверху замени my @google на большой который кинул снизу.server801 писал(а):Эт че и куда?
Код: Выделить всё
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use JSON::Any;
use Data::Dumper;
my $ua = LWP::UserAgent->new();
my $json = JSON::Any->new();
my @headers = (
'Referer' => 'http://www.w3.org/hypertext/DataSources/Overview.html'
);
my @google = (
'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&start=8&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&start=16&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&start=24&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&start=32&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/blogs?v=1.0&rsz=large&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/blogs?v=1.0&rsz=large&start=8&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/blogs?v=1.0&rsz=large&start=16&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/blogs?v=1.0&rsz=large&start=24&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
'http://ajax.googleapis.com/ajax/services/search/blogs?v=1.0&rsz=large&start=32&q=nod32+EAV-*+OR+AV-*+OR+TRIAL-*',
);
while (defined(my $from = shift @google)) {
my $response = $ua->get($from, @headers);
my $data;
if ($response->is_success) {
$data = $json->decode($response->content);
} else {
die $response->status_line;
}
if(defined($data)) {
foreach my $content (@{$data->{responseData}->{results}}) {
#print $content->{content};
my @username;
while ($content->{content} =~ /(eav-|av-|trial-)[<\/b>]*(\d+)/gi) {
#print $1.'!'.$2."\n";
push(@username, $1.$2);
}
for (my $i = 0; $i <= $#username; $i++) {
my $username_split = (split(/-/, $username[$i]))[1];
if ($content->{content} =~ /$username_split.{0,10} *password:* *([a-z0-9]{10})/igs) {
print "$username[$i] - $1 - ";
my $req = HTTP::Request->new(GET => "http://update.eset.com/download/engine3/em002_32_r0.nup");
$req->authorization_basic($username[$i], $1);
my $response = $ua->request($req);
if ($response->status_line eq "200 OK") {
print "ok\n";
} else {
print "false\n";
}
}
}
}
}
}
Код: Выделить всё
http://forum.lissyara.su/viewtopic.php?f=3&t=8924&sid=e77d89008459c1015f4c68dfd0fa0ab5&start=450
gonzo111 писал(а):http://www.lissyara.su/articles/freebsd ... 2_mirror2/
NOD32_upd_tools.tar.gz
Код: Выделить всё
--2010-10-30 03:47:28-- http://update.eset.com/download/engine3/em002_32_r0.nup
Resolving update.eset.com... 93.184.71.10, 93.184.71.27, 89.202.149.36, ...
Connecting to update.eset.com|93.184.71.10|:80... connected.
HTTP request sent, awaiting response... 401 Authorization Required
Reusing existing connection to update.eset.com:80.
HTTP request sent, awaiting response... 401 Authorization Required
Authorization failed.
http://update.eset.com/eset_upd Not present --> /usr/local/www/rwteam.com.ua/eset_upd/download/win/v3ess/pre/ess_nt32_rus.nup /download/win/v3ess/pre/ess_nt32_rus.nup 9294203 --->
--2010-10-30 03:47:28-- http://update.eset.com/download/win/v3ess/pre/ess_nt32_rus.nup
Resolving update.eset.com... 93.184.71.10, 93.184.71.27, 89.202.149.36, ...
Connecting to update.eset.com|93.184.71.10|:80... connected.
HTTP request sent, awaiting response... 401 Authorization Required
Reusing existing connection to update.eset.com:80.
HTTP request sent, awaiting response... 401 Authorization Required
Authorization failed.
Код: Выделить всё
в /usr/local/www/nod_update/ ложим
.htaccess
Подскажите как можно обучить скрипт пользовать unrar.gonzo111 писал(а):http://www.lissyara.su/articles/freebsd ... 2_mirror2/
вы там с perl устаните !!!jesprit писал(а):Подскажите как можно обучить скрипт пользовать unrar.gonzo111 писал(а):http://www.lissyara.su/articles/freebsd ... 2_mirror2/
Хочу запустить скрипт на домашнем роутере, поставил OpenWRT и хотелось бы использовать минимум софта, да и к тому же в репозитории нету 7z =(.
у касперского есть офф. бинарник кторый качает обновление. смотрим у них на форуме!!!viktor6 писал(а):Ребята извените за офтоп но есть такойже скрипт для касперского?
С perl то все нрмально а вот с 7zip устал (thefree писал(а): вы там с perl устаните !!!
Код: Выделить всё
Index of /
download/
eset_upd/
nod_upd
Код: Выделить всё
Index of /
Parent Directory
update.ver
Код: Выделить всё
Alias /x1/ "/usr/local/www/apache22/data/nod_update/eset_upd/"
Alias /download/ "/usr/local/www/apache22/data/nod_update/download/"
Код: Выделить всё
структура
jhost# ls -l nod_update/
total 10
-rw-r--r-- 1 root wheel 191 Oct 18 17:06 .htaccess
-rw-r--r-- 1 root wheel 279 Feb 10 15:26 .htpasswd
drwxrwxrwx 5 root wheel 512 Feb 14 12:36 download
drwxrwxrwx 2 root wheel 512 Feb 14 23:00 eset_upd
drwx------ 2 root wheel 512 Feb 14 23:00 tmp
ls -l download/ eset_upd/ tmp/
download/:
total 8
drwxr-xr-x 2 root wheel 3072 Feb 14 22:00 engine3
drwxr-xr-x 2 root wheel 512 Feb 14 12:38 engine3ess
drwxr-xr-x 4 root wheel 512 Feb 14 12:37 win
eset_upd/:
total 8
-rw-r--r-- 1 root wheel 6860 Feb 14 21:24 update.ver
tmp/:
total 96
-rw-r--r-- 1 root wheel 96490 Feb 14 19:23 eset_upd.ver
Код: Выделить всё
<VirtualHost *:80>
DocumentRoot /home/www/nod/
ServerName nod.veta.su
<Directory "/home/www/nod/">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Код: Выделить всё
ls /home/www/nod/
download eset_upd nod_upd
Код: Выделить всё
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin tt@mail.ru
DocumentRoot "/usr/local/www/apache22/data/www/tt.ru"
ServerName tt.ru
ServerAlias www.tt.ru
Alias /nod32v4/ "/usr/local/www/apache22/data/nod_update/eset_upd/"
Alias /download/ "/usr/local/www/apache22/data/nod_update/download/"
это для доступа по лог и поролю
<Directory "/usr/local/www/apache22/data/nod_update/">
Options Indexes Includes
AllowOverride All
</Directory>
ErrorLog "/var/log/www/tt.ru---erroe_log"
CustomLog "/var/log/www/tt.ru---access_log" common
ErrorDocument 404 /
</VirtualHost>
Код: Выделить всё
#!/usr/bin/perl
use FindBin;
use lib $FindBin::Bin;
use keys;
$PATH = "/usr/local/www/apache22/data/nod_update";
$TMP = "$PATH/tmp";
$KEY_DIR = "/usr/local/etc/nodnew/";
open(AUTHFILE, "$KEY_DIR/nod32.key");
print "!!! New Key !!!";
$LOGIN = <AUTHFILE>;
$LOGIN =~ s/username=//;
chomp $LOGIN;
print "username: $LOGIN";
$PASS = <AUTHFILE>;
$PASS =~ s/password=//;
chomp $PASS;
print "password: $PASS";
%servers = (
'http://update.eset.com'
);
%versions = ("eset_upd");
foreach $URL_UPD (%servers)
{
if($URL_UPD)
{
foreach $NUPD (%versions)
{
if($NUPD)
{
print "Using $URL_UPD/$NUPD...\n";
unlink("$TMP/$NUPD.ver","$PATH/$NUPD/update.ver");
download($PATH,"$URL_UPD/$NUPD/update.ver","/$NUPD/update.ver",$LOGIN,$PASS);
system("/usr/local/bin/7z e -y $PATH/$NUPD/update.ver -o$TMP");
rename("$TMP/update.ver","$TMP/$NUPD.ver");
$ver = "$TMP/$NUPD.ver";
open(VER, "< $ver") or die "Couldn't open $ver for reading: $!\n";
%files = ();
%urls = ();
$end = 0;
while (defined($line = <VER>) )
{
chomp $line;
if ($line =~ /COMPATLIST/)
{
$end = 1;
}
if ($end == 0)
{
($par,$val) = split /=/, $line;
$val = substr($val, 0, -1);
if ($par =~ /file/ )
{
$name = $val;
$furl = "$URL_UPD$val";
$line = "file=$name";
}
if ($par =~/size/ )
{
$size = $val;
$files{$name} = $size;
$urls{$name} = "$furl";
}
}
}
print "\n";
close(VER);
foreach $f (keys %files)
{
if ((-s "$PATH$f") != $files{$f})
{
$size = (-s "$PATH$f");
print "$URL_UPD/$NUPD Not present --> $PATH$f\t$f\t$files{$f} ---> $size\n";
unlink("$PATH$f");
download($PATH,$urls{$f},$f,$LOGIN,$PASS);
}
else
{
print "$URL_UPD/$NUPD Present --> $PATH$f\t$f\t$files{$f}\n";
}
}
chmod(0644,"$PATH/*");
sub download()
{
my ($path, $url, $f, $LOGIN, $PASS) = @_;
$dir = $f;
$dir =~s/^(.*)\/(.*)$/$1/;
system("mkdir -p $path$dir");
if (mylang($f) != 1){
system("/usr/local/bin/wget -P $path$dir --proxy-user=user --http-user=$LOGIN --http-password=$PASS $url");
}
}
}
}
}
}
close(AUTHFILE);
это чтоб не тенул все языки.... мне тока рус и ен
sub mylang()
{
my ($filename) = @_;
if (index($filename,"ukr") != -1) {return 1;}
if (index($filename,"bgr") != -1) {return 1;}
if (index($filename,"chs") != -1) {return 1;}
if (index($filename,"cht") != -1) {return 1;}
if (index($filename,"csy") != -1) {return 1;}
if (index($filename,"dan") != -1) {return 1;}
if (index($filename,"deu") != -1) {return 1;}
if (index($filename,"esn") != -1) {return 1;}
if (index($filename,"fin") != -1) {return 1;}
if (index($filename,"fra") != -1) {return 1;}
if (index($filename,"hrv") != -1) {return 1;}
if (index($filename,"hun") != -1) {return 1;}
if (index($filename,"ita") != -1) {return 1;}
if (index($filename,"nld") != -1) {return 1;}
if (index($filename,"nor") != -1) {return 1;}
if (index($filename,"plk") != -1) {return 1;}
if (index($filename,"ptb") != -1) {return 1;}
if (index($filename,"rom") != -1) {return 1;}
if (index($filename,"sky") != -1) {return 1;}
if (index($filename,"slv") != -1) {return 1;}
if (index($filename,"sve") != -1) {return 1;}
if (index($filename,"trk") != -1) {return 1;}
if (index($filename,"ch.nup") != -1) {return 1;}
if (index($filename,"cz.nup") != -1) {return 1;}
if (index($filename,"pt.nup") != -1) {return 1;}
if (index($filename,"fr.nup") != -1) {return 1;}
if (index($filename,"ge.nup") != -1) {return 1;}
if (index($filename,"hr.nup") != -1) {return 1;}
if (index($filename,"hu.nup") != -1) {return 1;}
if (index($filename,"jp.nup") != -1) {return 1;}
if (index($filename,"nl.nup") != -1) {return 1;}
if (index($filename,"pl.nup") != -1) {return 1;}
if (index($filename,"sk.nup") != -1) {return 1;}
if (index($filename,"sp.nup") != -1) {return 1;}
if (index($filename,"it.nup") != -1) {return 1;}
if (index($filename,"98") != -1) {return 1;}
if (index($filename,"_nt64_") != -1) {return 1;}
if (index($filename,"_64_") != -1) {return 1;}
return 0;
}