Проба пера: статья о создании зеркала для NOD32

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-12 3:28:07

на 8 фре пути для перла изменились!делаем симлинк

Код: Выделить всё

ln -s /usr/local/bin/perl /usr/bin/perl

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-12 4:18:18

Только что проверил на другой машине ... все прекрасно работает :)

Код: Выделить всё

# uname -a
FreeBSD cultura.local 7.2-RELEASE FreeBSD 7.2-RELEASE #1: Sat Jan  9 20:56:55 IRKT 2010     tray@cultura:/usr/obj/usr/src/sys/CULTURA.TRAY  i386
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-12 4:19:25

Вовсе незная перла ... своял скриптик :) пользуйтесь :)
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-12 4:32:43

Тут народ требовал что бы приходило на мыло что обнова прошла ...

в nod32.sh

добавляем выше строк

Код: Выделить всё

   print "Script NSDN + Andy2k and Tray.irk\n";
   print "ICQ: 5861008\n";
   print "email: tray.irk@gmail.com\n";
}
close(AUTHFILE);
строку

Код: Выделить всё

system("echo "Update bases nod32 -> OK" | mail -S "Nod32" pupkin@vasia.com");
хотя я сделал лучше ... в компаниях сотовой связи ... можно сделать что то типа того

Код: Выделить всё

system("echo "Update bases nod32 -> OK" | mail -S "Nod32" 79501299***@sms.bwc.ru");
при этом мне приходит смс на сотовый, что прошли обновы :)

P.S. sms.bwc.ru - это адресс моего оператора связи. этот адресс нужно уточнить у вашего оператора сотовой связи ... и не все это поддерживают
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-12 14:13:50

Я сразу скажу, как это работает для меня досехпор загадка но так сложилась что я уперся в то что не обнавляли нужную версию нод32 для меня. Взял палки в руки и пошел делать сам.

Что этот скрипт делает, гуглит ищет ключи проверяет сохраняет их ... качает, выводит дебаг, сам создает директории если не хватает, проверяет версии и выкачивает для 7и версий обновления.

Вот его настройка (конфиг в самом файле)

Код: Выделить всё

###
#
# debug
#
our $debug = 1;
# Config for google ajax search
# rus: http://code.google.com/intl/ru-RU/apis/ajaxsearch/documentation/reference.html#_intro_fonje
# eng: http://code.google.com/intl/en-EN/apis/ajaxsearch/documentation/reference.html#_intro_fonje
our $google_http = 'http://ajax.googleapis.com/ajax/services/search/blogs'; #Где мы ищем (описано по ссылки выши)
our $google_search = '?v=1.0&rsz=large&q=nod32+EAV-*+OR+AV-*+pass*'; #Сам запрос
our $google_referer = 'http://yandex.ru/yandsearch?text=nod32+key&lr=213'; #Гугл просит откуда приходим, подставляю что с яндекса
#
# Config Nod32
#
our @nod32_mirror = ('http://u42.eset.com/', 'http://u43.eset.com/', 'http://u43.eset.com/', 'http://u44.eset.com/', 
'http://u45.eset.com/', 'http://u46.eset.com/', 'http://u47.eset.com/', 'http://u48.eset.com/'); #список зеркал
our $nod32_test_key_file = '/download/engine3/em002_32_r0.nup'; #фаил на котором проверяем ключь
our @nod32_db = ( 'eset_upd', 'nod_upd', 'eset_upd/sky', 'eset_upd/pre', 'eset_upd/v4/pre', 'eset_upd/v4', 'eset_upd/v4/sky' ); #базы которые обнавлять
#
# Config for patch
#
our $path_nod32_auth = '/home/samba/hdd0/thefree/nod32.auth'; #где хранить ключ
our $path_nod32_base = '/home/samba/hdd0/thefree/www'; #куда кидать вся это (777 для папки)
our $path_unrar = '/usr/local/bin/unrar'; #где у нас рар
###
ВНИМАНИЕ ВСЕ ОБНАВЛЕНИЯ ВЕСЯТ 250МБ

Одним словам потестируйти плиз.

Во еще выбирает хост если не работает.

Нужны порты
_http://cvsweb.freebsd.org/ports/archivers/unrar
_http://cvsweb.freebsd.org/ports/www/p5-libwww
_http://cvsweb.freebsd.org/ports/converters/p5-JSON-Any

Запуск! Ставим права и поехали
Вложения
nod32.tar
(8 КБ) 73 скачивания
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-12 17:01:39

И вот еще порошки, действия скрипта сводится к обращения в гугле ... И проверка валидатности

Код: Выделить всё

# ./google.pl
EAV-***02650 - rk2bjhcbf3 - ok
EAV-***02651 - k4r3ejnsre - ok
EAV-***02722 - fxvcrbpsch - ok
EAV-***80471 - rhpe8h3svk - false
EAV-***80511 - a6ss2mm7mr - false
EAV-***80474 - adxf45cpnt - false
EAV-***80509 - jsbf33ms7u - false
EAV-255***09 - mtb423n2cr - false
EAV-241***23 - uaakunhc2s - false
EAV-***20016 - 7n7n2j4m5t - false
EAV-***03311 - k4btva6tj7 - false
EAV-***03314 - 6vhupvfpbf - false
EAV-24307*** - bbab6667uv - false
EAV-26***023 - rm6sn66u4d - ok
EAV-26360*** - ha6u222vc2 - ok
EAV-***71081 - 2e2nmjnhud - false
EAV-***71083 - 752kfd28v8 - false
Не будем компрометировать уважаемого Лиса.

Нужны порты
_http://cvsweb.freebsd.org/ports/www/p5-libwww
_http://cvsweb.freebsd.org/ports/converters/p5-JSON-Any
Вложения
google.tar
(3 КБ) 57 скачиваний
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-13 9:12:28

tray.irk писал(а):Тут народ требовал что бы приходило на мыло что обнова прошла ...

в nod32.sh

добавляем выше строк

Код: Выделить всё

   print "Script NSDN + Andy2k and Tray.irk\n";
   print "ICQ: 5861008\n";
   print "email: tray.irk@gmail.com\n";
}
close(AUTHFILE);
строку

Код: Выделить всё

system("echo "Update bases nod32 -> OK" | mail -S "Nod32" pupkin@vasia.com");
хотя я сделал лучше ... в компаниях сотовой связи ... можно сделать что то типа того

Код: Выделить всё

system("echo "Update bases nod32 -> OK" | mail -S "Nod32" 79501299***@sms.bwc.ru");
при этом мне приходит смс на сотовый, что прошли обновы :)

P.S. sms.bwc.ru - это адресс моего оператора связи. этот адресс нужно уточнить у вашего оператора сотовой связи ... и не все это поддерживают
не работает скрипт что то.....ошибку писал выше.обьясните все последовательность что и как делали.

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-13 9:25:57

thefree писал(а):Я сразу скажу, как это работает для меня досехпор загадка но так сложилась что я уперся в то что не обнавляли нужную версию нод32 для меня. Взял палки в руки и пошел делать сам.

Что этот скрипт делает, гуглит ищет ключи проверяет сохраняет их ... качает, выводит дебаг, сам создает директории если не хватает, проверяет версии и выкачивает для 7и версий обновления.

Вот его настройка (конфиг в самом файле)

Код: Выделить всё

###
#
# debug
#
our $debug = 1;
# Config for google ajax search
# rus: http://code.google.com/intl/ru-RU/apis/ajaxsearch/documentation/reference.html#_intro_fonje
# eng: http://code.google.com/intl/en-EN/apis/ajaxsearch/documentation/reference.html#_intro_fonje
our $google_http = 'http://ajax.googleapis.com/ajax/services/search/blogs'; #Где мы ищем (описано по ссылки выши)
our $google_search = '?v=1.0&rsz=large&q=nod32+EAV-*+OR+AV-*+pass*'; #Сам запрос
our $google_referer = 'http://yandex.ru/yandsearch?text=nod32+key&lr=213'; #Гугл просит откуда приходим, подставляю что с яндекса
#
# Config Nod32
#
our @nod32_mirror = ('http://u42.eset.com/', 'http://u43.eset.com/', 'http://u43.eset.com/', 'http://u44.eset.com/', 
'http://u45.eset.com/', 'http://u46.eset.com/', 'http://u47.eset.com/', 'http://u48.eset.com/'); #список зеркал
our $nod32_test_key_file = '/download/engine3/em002_32_r0.nup'; #фаил на котором проверяем ключь
our @nod32_db = ( 'eset_upd', 'nod_upd', 'eset_upd/sky', 'eset_upd/pre', 'eset_upd/v4/pre', 'eset_upd/v4', 'eset_upd/v4/sky' ); #базы которые обнавлять
#
# Config for patch
#
our $path_nod32_auth = '/home/samba/hdd0/thefree/nod32.auth'; #где хранить ключ
our $path_nod32_base = '/home/samba/hdd0/thefree/www'; #куда кидать вся это (777 для папки)
our $path_unrar = '/usr/local/bin/unrar'; #где у нас рар
###
ВНИМАНИЕ ВСЕ ОБНАВЛЕНИЯ ВЕСЯТ 250МБ

Одним словам потестируйти плиз.

Во еще выбирает хост если не работает.

Нужны порты
_http://cvsweb.freebsd.org/ports/archivers/unrar
_http://cvsweb.freebsd.org/ports/www/p5-libwww
_http://cvsweb.freebsd.org/ports/converters/p5-JSON-Any

Запуск! Ставим права и поехали
на самом деле работает!как добавить к нему wget?вообще бы цены не было!

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-13 9:44:09

зачем?
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-13 9:51:57

потому что не у всех скорость большая.вот у меня сейчас 7 кбит всего на скачке,вегет спасает ...

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-13 10:11:10

Сочувствую, придется ждать.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-13 22:30:06

server801 писал(а):

Код: Выделить всё

./nod32.sh
Can't locate keys.pm in @INC (@INC contains: /usr/home/raven/test /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at ./nod32.sh line 5.
BEGIN failed--compilation aborted at ./nod32.sh line 5.
модули доставлять надо?какие?
ругается на use keys;

Код: Выделить всё

use FindBin;
use lib $FindBin::Bin;
use keys;
#use lib::keys;

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-14 8:24:06

#cpan -i URI
#cpan -if LWP
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-14 9:05:51

tray.irk писал(а):#cpan -i URI
#cpan -if LWP
неа не то ... не может найти keys.pm значит не срабатывает

Код: Выделить всё

use FindBin;
use lib $FindBin::Bin;
use keys;
#use lib::keys;
стоит откоментить #use lib::keys; и закоментить use keys;
====
какая установка через cpan это же FreeBSD есть порты !!!
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-14 11:05:03

#cpan -i URI
#cpan -if LWP
я вот до сих пор не знаю что за порты заменяющие.как называются?

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-14 11:08:37

tray.irk писал(а):#cpan -i URI
#cpan -if LWP

Код: Выделить всё

./nod.pl
Undefined subroutine &keys::start called at ./nod.pl line 8.
ну и?модули перла стоят

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-14 11:27:19

Код: Выделить всё

lwp = _http://cvsweb.freebsd.org/ports/www/p5-libwww
Но он идет сразу со скриптом, тот что вы используете

Код: Выделить всё

Undefined subroutine &keys::start called at ./nod.pl line 8.
Говорит о том что не может определить функцию и где вы её нашли в 8 строчки я хз ...
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-14 16:27:27

еще раз с самого начала .....

делаем:

Код: Выделить всё

#cpan -i URI
#cpan -if LWP
создаем папки как в скрипте:

Код: Выделить всё

$PATH_DIR = "/usr/local/etc/script/nod32"; # тут дира где лежит сам скрипт
$PATH = "/usr/local/www/apache22/data"; # тут меняем на /дира_куда_будут_качаться_обновы
$TMP = "/usr/local/www/apache22/data/tmp"; # тут меняем на /дира_куда_будут_качаться_обновы/tmp
то есть:

Код: Выделить всё

 mkdir -p /usr/local/etc/script && mkdir -p /usr/local/etc/script/nod32
 mkdir -p /usr/local/www/apache22/data
 mkdir -p /usr/local/www/apache22/data/tmp
далее создаем в папке /usr/local/etc/script/nod32 скрипт nod.sh следующего содержания:

Код: Выделить всё

#!/usr/bin/perl

use FindBin;
use lib $FindBin::Bin;
use keys;

keys::start();
open(AUTHFILE, "/usr/local/etc/script/nod32/nod32.key"); # тут меняем на /дира_где_лежит_скрипт/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";


$PATH_DIR = "/usr/local/etc/script/nod32"; # тут дира где лежит сам скрипт
$PATH = "/usr/local/www/apache22/data"; # тут меняем на /дира_куда_будут_качаться_обновы
$TMP = "/usr/local/www/apache22/data/tmp"; # тут меняем на /дира_куда_будут_качаться_обновы/tmp

%servers = (
   'http://u46.eset.com',
   'http://u21.eset.com'
);


%versions = ("nod_upd","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/unrar e -y $PATH/$NUPD/update.ver $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");
               system("/usr/local/bin/wget -P $path$dir --proxy-user=user --http-user=$LOGIN --http-password=$PASS $url");
            }
         }
      }
   }
}
print "Script NSDN + Andy2k and Tray.irk\n";
print "ICQ: 5861008\n";
print "email: tray.irk@gmail.com\n";

close(AUTHFILE);
#system("$PATH_DIR/mail.sh"); 
#если нужно отправить почтовое сообщение после обновления (для этого создадим в папке где лежит скрипт, файл mail.sh и 
#в него поместим 
#
##!/bin/sh
#echo "Update bases -> OK" | mail -s "NOD32" test@mail.com
#
#)
так же создаем в папке со скриптом (/usr/local/etc/script/nod32) файл keys.pm следующего содержания:

Код: Выделить всё

package keys;

use FindBin;
use lib $FindBin::Bin . "";
use strict;
use LWP::UserAgent;
use Data::Dumper;
use HTTP::Cookies;

our $page;
our $start = "";
our $advanced = 0;

if (defined($ARGV[0]) && defined($ARGV[1])) {
    chomp $ARGV[0];
    chomp $ARGV[1];
    robot("http://www.google.com/search?q=something");
    sleep 5;
    robot("http://google.com/sorry/Captcha?id=$ARGV[0]&captcha=$ARGV[1]&continue=http://www.google.com/search%3Fq%3Dnod32%2BEAV-*%2BOR%2BAV-*%26hl%3Den%26safe%3Doff%26as_qdr%3Dw");
}

sub start {
    if (!init()) {
        $advanced = 1;
        $page = 0;
        $start = "";
        init();
    }
}

sub init {
    my $status;
    my $google = "http://www.google.com/search?q=nod32+EAV-*+OR+AV-*&hl=en&safe=off&as_qdr=w";
    if (!$advanced) {
        $status = google($google.$start);
    } else {
        $status = google_advanced($google.$start);
    }
    $page += 10;
    $start = "&start=".$page;
    if ($page > 400) {return 0;}
    #Pause needed cause google is detecting bot
    sleep 2;
    if (!$status) {
        init();
    } else {
        return 1;
    }
}

sub google {
    my $google = shift(@_);
    if (!$google) {return 0};
    my ($content, @username, @part1, @part2, $success);
    my $ua = LWP::UserAgent->new(agent => 'Opera/9.25 (Windows NT 5.1; U; isp; ru)' ,
    'cookie_jar' => {file => "$FindBin::Bin/lwpcookies.txt", autosave => 1, ignore_discard => 1});
    my $req = HTTP::Request->new(GET => $google);
    $req->header('Accept' => 'text/html');
    my $res = $ua->request($req);
    if ($res->is_success) {
        $content = $res->decoded_content;
    }
    else {
        print "Error: $res->status_line\n";
    }
    if ($content =~ /<title>403 Forbidden<\/title>/) {robot();}
    while ($content =~ /(eav-|av-)[<\/b>]*(\d+)/gi) {
        push(@username, $1.$2);
        push(@part2, $2);
    }
    for (my $i = 0; $i <= $#username; $i++) {
        if ($content =~ /$part2[$i].{0,10} *password:* *([a-z0-9]{10})/igs) {
            $success = test_key($username[$i], $1);
            if ($success) {return 1;}
        }
    }
    if (!$success) {
        return 0;
    }
}

sub test_key {
    my ($username, $password) = @_;
    my $ua = LWP::UserAgent->new;
    $ua->timeout(10);
    my $req = HTTP::Request->new(GET => "http://update.eset.com/download/engine3/em002_32_r0.nup");
    $req->authorization_basic($username, $password);
    my $res=$ua->request($req);
    my $status=$res->status_line;
    if ($status eq "200 OK") {
        open (AUTHFILE, ">$FindBin::Bin/nod32.key");
        print AUTHFILE "username=$username\npassword=$password";
        close AUTHFILE;
        print "New key found!\n $username\n $password\n";
        return 1;
    } else {
        return 0;
    }
}

sub google_advanced {
    my $google = shift(@_);
    my ($content, $success);
    my $ua = LWP::UserAgent->new(agent => "Opera/9.25 (Windows NT 5.1; U; isp; ru)" ,
    'cookie_jar' => {file => "$FindBin::Bin/lwpcookies.txt", autosave => 1, ignore_discard => 1});
    my $req = HTTP::Request->new(GET => $google);
    $req->header('Accept' => 'text/html');
    my $res = $ua->request($req);
    if ($res->is_success) {
        $content = $res->decoded_content;
    }
    else {
        print "Error: $res->status_line\n";
    }
    if ($content =~ /<title>403 Forbidden<\/title>/) {robot()};
    my @pages = split("<div class=(?:g |g>)|<div id=navbar class=n>", $content);
    shift(@pages);pop(@pages);
    for (my $i = 0; $i <= $#pages; $i++) {
        if ($pages[$i] =~ /(?:eav-|av-)[<\/b>]*\d+/gi) {
            $pages[$i] =~ /\G.+<a class=fl href=\"(.+)\">Cached<\/a> -/;
            #Pause needed cause google is detecting bot
            sleep 2;
            google($1);
        }
    }
}

sub robot {
    my $google = "http://www.google.com/search?q=nod32+EAV-*+OR+AV-*&hl=en&safe=off&as_qdr=w";
    if (defined($_[0])) {$google = $_[0];}
    my ($content, $success);
    my $cookie_jar = HTTP::Cookies->new;
    my $ua = LWP::UserAgent->new(agent => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)' ,
    'cookie_jar' => {file => "$FindBin::Bin/lwpcookies.txt", autosave => 1, ignore_discard => 1});
    my $req = HTTP::Request->new(GET => $google);
    $cookie_jar->add_cookie_header($req);
    my $res = $ua->request($req);
    if ($res->is_success) {
        $content = $res->decoded_content;
    }
    else {
        print "Error: $res->status_line\n";
    }
    if (!defined($_[0])) {
        $content =~ /<img src=\"(\/sorry\/image\?id=)(\d+)\" border="1"/s;
        my $err = "Google detected robot. Open this link in browser: http://google.com$1$2 \nRun script with this parameters: perl upd.pl $2 letters_from_captcha_image";
        print "$err\n";
    }
    return;
}

1;

так же создадим в папке со скриптом, пустой файл nod32.key

Код: Выделить всё

touch nod32.key
дадим права на эти файлы ...

Код: Выделить всё

chmod 777 nod.sh && chmod 777 keys.pm && chmod 777 nod32.key
после чего запускаем скрипт nod.sh

Код: Выделить всё

./nod.sh

должно быть нечто подобное (у меня обновы уже все стоят ... по этому качать он ничего не будет)

Код: Выделить всё

]# ./nod.sh
New key found!
 EAV-2*357***
 r*6sn****d
!!! New Key !!!username: EAV-2*357***password: r*6sn****dUsing http://u46.eset.com/nod_upd...
--2010-01-14 21:25:31--  http://u46.eset.com/nod_upd/update.ver
Распознаётся u46.eset.com... 90.183.101.16
Устанавливается соединение с u46.eset.com|90.183.101.16|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 4080 (4,0K) [application/octet-stream]
Сохраняется в каталог: `/usr/local/www/apache22/data/nod_upd/update.ver'.

100%[===================================================================================================================>] 4 080       21,0K/s   в 0,2s

2010-01-14 21:25:31 (21,0 KB/s) - `/usr/local/www/apache22/data/nod_upd/update.ver' сохранён [4080/4080]


UNRAR 3.90 freeware      Copyright (c) 1993-2009 Alexander Roshal


Extracting from /usr/local/www/apache22/data/nod_upd/update.ver

Extracting  /usr/local/www/apache22/data/tmp/update.ver               OK
All OK

http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/98admncz.nup       /download/win/v2/98admncz.nup   886636
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/ntadmnhr.nup       /download/win/v2/ntadmnhr.nup   663917
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/98inetpl.nup       /download/win/v2/98inetpl.nup   874437
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/engine/engine0.nup        /download/engine/engine0.nup    12058855
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/98inethr.nup       /download/win/v2/98inethr.nup   643585
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/98ineten.nup       /download/win/v2/98ineten.nup   662080
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/ntsakcz.nup        /download/win/v2/ntsakcz.nup    635215
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/ntsakge.nup        /download/win/v2/ntsakge.nup    635064
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/98inetfr.nup       /download/win/v2/98inetfr.nup   911283
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/ntstdpt.nup        /download/win/v2/ntstdpt.nup    1373203
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/ntsaksp.nup        /download/win/v2/ntsaksp.nup    635465
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/engine/charon2.nup        /download/engine/charon2.nup    944
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/98stdnl.nup        /download/win/v2/98stdnl.nup    1263556
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/ntsaken.nup        /download/win/v2/ntsaken.nup    628911
http://u46.eset.com/nod_upd Present --> /usr/local/www/apache22/data/download/win/v2/98inetpt.nup       /download/win/v2/98inetpt.nup   900563

секунд 10 он будет искать в инете ключ и проверять его, после нахождения сразу же начнет качать обновы ... при первом обновлении придется стянуть около 200 метров ... далее меньше, так как wget заменяет старые файлы на новые ... тоесть нод не все ведь файлы обновляет ... а только некоторые ...

так же этот скрипт я запихал в крон ...

Код: Выделить всё

0       18      *       *       *       root    /usr/local/etc/script/nod32/nod.sh
у клиентов прописал путь к обновам

Код: Выделить всё

http://10.38.*.*/eset_upd/
вот и ВСЕ ... Отлично работает!
Последний раз редактировалось tray.irk 2010-01-14 16:33:25, всего редактировалось 1 раз.
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-14 16:31:31

мде, мой скрипт проще ... все из коробочки так сказать.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-14 16:35:13

возможно ... я ничего и не говорю ... нужно доработать малость ... просто лень ... работает да и ладно ... дело каждого, кому какой более по душе
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1365
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение server801 » 2010-01-15 1:36:29

Код: Выделить всё

 ./nod.sh
New key found!
 EAV-26162161
***********
!!! New Key !!!username: EAV-26162161password: ************Using http://u46.eset.com/nod_upd...

UNRAR 3.90 freeware      Copyright (c) 1993-2009 Alexander Roshal

Cannot open /usr/local/www/apache22/data/nod_upd/update.ver
Нет такого файла или каталога
No files to extract
Couldn't open /usr/local/www/apache22/data/tmp/nod_upd.ver for reading: Нет такого файла или каталога
что то косячит....хотя пути есть,и почему то скрипт на самом деле не создает nod_upd.ver куда нужно...
Последний раз редактировалось server801 2010-01-15 8:54:21, всего редактировалось 2 раза.

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-15 7:16:30

попробуй права 777 выставить на /usr/local/www/apache22/data

еси не получится ... то пробуй ручками создать папку /usr/local/www/apache22/data/nod_upd/

P.S. не пали уважаемого Лиса ... (не пали ключи на форуме)
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-15 8:28:35

Вот интересно как бы выдернуть и откуда выденуть версию обновы для нода ... в текстовый файл например ...
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение tray.irk » 2010-01-15 8:29:37

server801, еси что стучись в аську ... помогу ... ICQ 5861008
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Проба пера: статья о создании зеркала для NOD32

Непрочитанное сообщение thefree » 2010-01-15 9:16:34

в алексе скрипте тот что на php (топике) я выкидывал скрипты для perl показывающие версию.
ищем.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету