шустрый скрипт скрипт зеркала NOD32

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

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

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение LBV » 2016-08-09 9:40:31

Чет проблема тоже после 29.07, в логах

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

[2016-08-09, 09:34:02] Запущен скрипт 1.0.191014 [Freedom for Ukraine]
[2016-08-09, 09:34:02] Будет использован ключ [EAV-0171649329:72k4vjxjjh] Срок действия 09.10.16
[2016-08-09, 09:34:08] [ver. 3] Последняя версия базы 13931 (20160809) найдена на сервере um06.eset.com
[2016-08-09, 09:34:08] [ver. 4] Последняя версия базы 13931 (20160809) найдена на сервере um06.eset.com
[2016-08-09, 09:34:09] [ver. 5] Последняя версия базы 13931 (20160809) найдена на сервере um06.eset.com
[2016-08-09, 09:34:09] [ver. 6] Последняя версия базы 13931 (20160809) найдена на сервере um06.eset.com
[2016-08-09, 09:34:09] [ver. 7] Последняя версия базы 13931 (20160809) найдена на сервере um06.eset.com
[2016-08-09, 09:34:09] [ver. 8] Последняя версия базы 13931 (20160809) найдена на сервере um06.eset.com
[2016-08-09, 09:34:12] [ver. 3] Загрузка 24 файлов
[2016-08-09, 09:34:12] [ver. 3] Ошибка загрузки файла http://um06.eset.com/v3-rel-sta/mod_021_horus_7938/em021_32_n9.nup
[2016-08-09, 09:34:13] [ver. 3] Ошибка загрузки файла http://um06.eset.com/v3-rel-sta/mod_021_horus_7938/em021_32_n5.nup
при этом на экране подобные сообщения

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

Array
(
    [url] => http://um06.eset.com/v3-rel-sta/mod_021_horus_7938/em021_32_n9.nup
    [content_type] => text/html
    [http_code] => 401
    [header_size] => 205
    [request_size] => 156
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.059042
    [namelookup_time] => 5.2E-5
    [connect_time] => 0.029003
    [pretransfer_time] => 0.029093
    [size_upload] => 0
    [size_download] => 188
    [speed_download] => 3184
    [speed_upload] => 0
    [download_content_length] => 188
    [upload_content_length] => -1
    [starttransfer_time] => 0.058963
    [redirect_time] => 0
    [redirect_url] =>
    [primary_ip] => 91.228.167.133
    [certinfo] => Array
        (
        )

    [primary_port] => 80
    [local_ip] => 192.168.4.2
    [local_port] => 48698
)

Хостинговая компания 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/

LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение LBV » 2016-08-10 12:09:17

Народ отпишитесь, это только у меня или у всех этот скрипт такое чудит?

KVAn
рядовой
Сообщения: 10
Зарегистрирован: 2013-09-26 17:24:11

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение KVAn » 2016-08-11 0:53:59

Жаль, все тоже самое. ((

LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение LBV » 2016-08-11 11:10:06

Кароче оставил только сервер обновлений

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

update.eset.com
вроде заработало...

Аватара пользователя
V0lk
рядовой
Сообщения: 41
Зарегистрирован: 2013-07-02 16:43:29

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение V0lk » 2016-08-14 16:49:56

andry212, там нет столько строк. Последняя - 228.
Временно использую старый скрипт от другого автора (нет поддержки восьмой версии NOD32).

Попробую фикс, предложенный LBV на днях задействовать.
НЕТ ВОЙНЕ!

isnogood
проходил мимо

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение isnogood » 2016-08-16 14:54:52

Была такая же ошибка, удалил содержимое файла с валидным ключом, все заработало.
cat /dev/null >/var/log/eset.log/nod_keys.valid


KVAn
рядовой
Сообщения: 10
Зарегистрирован: 2013-09-26 17:24:11

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение KVAn » 2016-08-16 18:09:24

isnogood писал(а):Была такая же ошибка, удалил содержимое файла с валидным ключом, все заработало.
cat /dev/null >/var/log/eset.log/nod_keys.valid
Больщущее спасибо! Мне помогло! :good:

andry212
рядовой
Сообщения: 33
Зарегистрирован: 2012-11-30 9:07:45

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение andry212 » 2016-08-16 20:21:32

V0lk, вышли полностью в ЛС

Аватара пользователя
V0lk
рядовой
Сообщения: 41
Зарегистрирован: 2013-07-02 16:43:29

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение V0lk » 2016-08-17 12:32:26

andry212, опубликую тут:

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

<?php

class Mirror {
	static private $ALREADY_PARSED = array();
	
	static public function test_key($login, $passwd) {
		$mirrors = Config::get('mirror');
		shuffle($mirrors);
		foreach($mirrors as $mirror) {
			$tries = 0;
			while(++$tries <= Config::get('default_errors_quantity')) {
				if ($tries > 1)  {
					usleep(CONNECTTIMEOUT*1000000);
				}
				if (Config::get('update_version_ess') == 1) {
					$header = @get_headers("http://$login:$passwd@$mirror".$GLOBALS['TESTKEY_REAL_PATH_ESS']);
				} else {
					$header = @get_headers("http://$login:$passwd@$mirror".$GLOBALS['TESTKEY_REAL_PATH_NOD']);
				}
				if (preg_match("/401/", $header[0])) return false;
				else return true;
			}
			return $header[0];
		}
	}
	
	static public function find_best_mirrors($key) {
		$mirrors = Config::get('mirror');
		$login = $key[0];
		$password = $key[1];
		global $DIRECTORIES;
		$dir = $DIRECTORIES[array_rand($DIRECTORIES)];
		$test_mirrors = array();
		if (function_exists('curl_multi_init')){
			$treads = 20;
			$treads = (sizeof($mirrors) < $treads) ? sizeof($mirrors) : $treads;
			$master = curl_multi_init();
			$options = array(
				CURLOPT_CONNECTTIMEOUT => CONNECTTIMEOUT,
				CURLOPT_HEADER => false,
				CURLOPT_NOBODY => true,
				CURLOPT_FOLLOWLOCATION => true,
				CURLOPT_MAXREDIRS => 5
			);
			for ($i = 0; $i < $treads; $i++) {
				$ch = curl_init();
				$url = "http://$mirrors[$i]/$dir/update.ver";
				$options[CURLOPT_URL] = $url;
				$options[CURLOPT_USERPWD] = $login.':'.$password;
				curl_setopt_array($ch, $options);
				curl_multi_add_handle($master, $ch);
			}
			do {
				while(($execrun = curl_multi_exec($master, $running)) == CURLM_CALL_MULTI_PERFORM);
				curl_multi_select($master);
				if ($execrun != CURLM_OK) break;
				while($done = curl_multi_info_read($master)) {
					$info = curl_getinfo($done['handle']);
					if ($info['http_code'] == 200) {
						$url = parse_url($info['url']);
						$test_mirrors[$url['host']] = round($info['total_time']*1000);
					}
					$i++;
					if (isset($mirrors[$i])) {
						$ch = curl_init();
						$url = "http://$mirrors[$i]/$dir/update.ver";
						$options[CURLOPT_URL] = $url;
						curl_setopt_array($ch, $options);
						curl_multi_add_handle($master, $ch);
					}
					curl_multi_remove_handle($master, $done['handle']);
					curl_close($done['handle']);
				}
			} while ($running);
			curl_multi_close($master);
		} else {
			ini_set('default_socket_timeout', CONNECTTIMEOUT);
			foreach($mirrors as $mirror) {
				$time = microtime(true);
				$header = @get_headers("http://".$login.':'.$password."@$mirror/$dir/update.ver", 1);
				if (preg_match("/200/", $header[0])) {
					$test_mirrors[$mirror] = round((microtime(true) - $time)*1000); 
				}
				unset($header);
			}
			ini_restore('default_socket_timeout');
		}
		asort($test_mirrors);
		$best_mirrors = array();
		foreach ($test_mirrors as $mirror => $time) $best_mirrors[] = $mirror;
		$GLOBALS['mirrors'] = $best_mirrors;
	}
	
	static public function check_mirror($version, $key) {
		$login = $key[0];
		$password = $key[1];
		global $DIRECTORIES;
		$dir = $DIRECTORIES[$version];
		$cur_update_ver = Tools::ds(Config::get('web_dir'), $dir, 'update.ver');
		$tmp_path = Tools::ds(Config::get('web_dir'), TMP_PATH, $dir);
		$old_version = Mirror::get_DB_version($cur_update_ver);
		@mkdir($tmp_path, 0755, true);
		$arch = Tools::ds($tmp_path, 'update.rar');
		$unarch = Tools::ds($tmp_path, 'update.ver');
		while (!empty($GLOBALS['mirrors'])){
			$mirror_array_values = array_values($GLOBALS['mirrors']);
			$mirror = array_shift($mirror_array_values);
			$header = Tools::download_file("http://".$login.':'.$password."@$mirror/$dir/update.ver", $arch);
			if (is_array($header) and !empty($header[0]) and preg_match("/200/", $header[0])){
				if (preg_match("/text/", $header['Content-Type'])){
					rename($arch, $unarch);
				} else {
					tools::extract_file($arch, $tmp_path);
					@unlink($arch);
				}
				$new_version = mirror::get_DB_version($unarch);
				$content = @file_get_contents($unarch);
				if ((intval($new_version) >= intval($old_version)) and preg_match('/'.Config::get('update_version_filter').'/', $content)) break;
				else @unlink($unarch);
			}
			array_shift($GLOBALS['mirrors']);
		}
		if (!empty($GLOBALS['mirrors'])) return array($mirror, $new_version);
		else return array(null, null);
	}
	
	static public function get_DB_version($file) {
		if (!file_exists($file)) return null;
		$content = file_get_contents($file);
		$upd = parser::parse_line($content, "version");
		$max = 0;
		if (isset($upd)) {
			foreach($upd as $key) {
				$tmp = explode(' ', $key);
				$max = $max < intval($tmp[0]) ? $key : $max;
			}
		}
		return $max;
	}

	static public function download_signature($version, $mirror, $pair_key, $version = null) {
		global $DIRECTORIES;
		$dir = Config::get('web_dir');
		$cur_update_ver = Tools::ds($dir, $DIRECTORIES[$version], 'update.ver');
		$tmp_update_ver = Tools::ds($dir, TMP_PATH, $DIRECTORIES[$version], 'update.ver');
		$content = @file_get_contents($tmp_update_ver);
		preg_match_all('#\[\w+\][^\[]+#', $content, $matches);
		if (!empty($matches)){
			$new_content = '';
			$new_files = array();
			$total_size = 0;

			// Parse files from .ver file
			foreach ($matches[0] as $container) {
				parse_str((str_replace("\r\n", "&", $container)), $output);
				if ( empty($output['file']) or empty($output['size']) or empty($output['date']) or
					(!empty($output['language']) and !in_array($output['language'], Config::get('update_version_lang'))) or
					(Config::get('update_version_x32') != 1 and preg_match("/32|86/", $output['platform'])) or
					(Config::get('update_version_x64') != 1 and preg_match("/64/", $output['platform'])) or
					(Config::get('update_version_ess') != 1 and preg_match("/ess/", $output['type'])) ){
					continue;
				}
				$new_files[] = array($output['file'], $output['size']);
				$total_size += $output['size'];
				$new_content .= $container;
			}
			
			// Create hardlinks/copy file for empty needed files (name, size)
			$old_files = array();
			$Directory = new RecursiveDirectoryIterator($dir);
			$It        = new RecursiveIteratorIterator($Directory, RecursiveIteratorIterator::SELF_FIRST);
			$Regex1    = new RecursiveRegexIterator($Directory,'/v\d+-'.Config::get('update_version_filter').'/i');
			$It2       = new RecursiveIteratorIterator($Regex1); 
			$Regex2    = new RegexIterator($It2,'/\.nup$/i');
			foreach($Regex2 as $file) $old_files[] = $file->getPathname();

			$download_files = array();
			$needed_files = array();
			foreach ($new_files as $array) {
				list($file, $size) = $array;
				$dirfile = Tools::ds($dir, $file);
				$needed_files[] = $dirfile;
				if (file_exists($dirfile) and (@filesize($dirfile) != $size)) unlink($dirfile);
				if (!file_exists($dirfile)) {
					$results = preg_grep('/'.basename($file).'$/', $old_files);
					$test = false;
					if (!empty($results)){
						foreach ($results as $result){
							if ($size == @filesize($result)) $test = true; break;
						}
					}
					if ($test){
						$res = dirname($dirfile);
						if (!file_exists($res)) mkdir($res, 0755, true);
						if (Config::get('create_hard_links')){
							if (Config::get('create_hard_links') == 'link') {
								link($result, $dirfile);
							} elseif (Config::get('create_hard_links') == 'fsutil') {
								shell_exec(sprintf("fsutil hardlink create %s %s", $dirfile, $result));
							}
							Log::write_log(Language::t("Created hard link for %s", basename($file)), 3, $version);
						} else {
							copy($result, $dirfile);
							Log::write_log(Language::t("Copied file %s", basename($file)), 3, $version);
						}
					} else {
						$download_files[] = $file;
					}
				}
			}
		
			// Download files
			$total_downloads = 0;
			$average_speed = 0;
			$start_time = microtime(true);
			if (!empty($download_files)){
				shuffle($download_files);
				Log::write_log( Language::t("Downloading %d files", count($download_files)), 3, $version );
				if (Tools::ping($mirror) != true ) list($mirror, $new_version) = Mirror::check_mirror($version,$pair_key);
				if ($mirror != null) {
					if (function_exists('curl_multi_init')){
						$test = false;
						$treads = 10;
						$file = array();
						$treads = (count($download_files) < $treads) ? count($download_files) : $treads;
						$master = curl_multi_init();
						$options = array(
							CURLOPT_USERPWD => "$pair_key[0]:$pair_key[1]",
							CURLOPT_BINARYTRANSFER  => true,
							CURLOPT_CONNECTTIMEOUT => CONNECTTIMEOUT,
							CURLOPT_HEADER => false,
							CURLOPT_FOLLOWLOCATION => true,
							CURLOPT_MAXREDIRS => 5
						);
						$handles = array();
						for ($i = 0; $i < $treads; $i++) {
							$ch = curl_init();
							$handles[$ch] = $mirror;
							$res = dirname(Tools::ds($dir, $download_files[$i]));
							if (!@file_exists($res)) @mkdir($res, 0755, true);
							$url = "http://".$mirror.$download_files[$i];
							$file[$url] = fopen(Tools::ds($dir, $download_files[$i]), 'w');
							$options[CURLOPT_URL] = $url;
							$options[CURLOPT_FILE] = $file[$url];
							curl_setopt_array($ch, $options);
							curl_multi_add_handle($master, $ch);
						}
						do {
							while(($execrun = curl_multi_exec($master, $running)) == CURLM_CALL_MULTI_PERFORM);
							curl_multi_select($master);
							if ($execrun != CURLM_OK) break;
							while($done = curl_multi_info_read($master)) {
								$ch = $done['handle'];
								$info = curl_getinfo($ch);
								$host = $handles[$ch];
								if ($info['http_code'] == 200)  {
									@fclose($file[$info['url']]);
									unset($file[$info['url']]);
									$parsed_url = parse_url($info['url']);
									Log::write_log(Language::t("From %s downloaded %s [%s] [%s/s]", $host, basename($info['url']), Tools::bytesToSize1024($info['download_content_length']), Tools::bytesToSize1024($info['speed_download'])), 3, $version);
									unset($handles[$ch]);
									$total_downloads += $info['download_content_length'];
									$i++;
									if (isset($download_files[$i])) {
										$ch = curl_init();
										$res = dirname(Tools::ds($dir, $download_files[$i]));
										if (!@file_exists($res)) @mkdir($res, 0755, true);
										$url = "http://".$mirror.$download_files[$i];
										$handles[$ch] = $mirror;
										$file[$url] = @fopen(Tools::ds($dir, $download_files[$i]), 'w');
										$options[CURLOPT_URL] = $url;
										$options[CURLOPT_FILE] = $file[$url];
										curl_setopt_array($ch, $options);
										curl_multi_add_handle($master, $ch);
									}
								} else {
									@fclose($file[$info['url']]);
									Log::write_log( Language::t("Error download url %s", $info['url']), 3, $version );
									print_r ($info);
									$parsed_url = parse_url($info['url']);
									if (!empty($GLOBALS['mirrors'])){
										if ($host == array_shift(array_values($GLOBALS['mirrors']))) {
											list($mirror, $new_version) = Mirror::check_mirror($version);
										}
										if ($mirror != null){
											$ch = curl_init();
											$url = "http://".$mirror.$parsed_url['path'];
											$handles[$ch] = $mirror;
											$file[$url] = @fopen(Tools::ds($dir, $parsed_url['path']), 'w');
											$options[CURLOPT_URL] = $url;
											$options[CURLOPT_FILE] = $file[$url];
											curl_setopt_array($ch, $options);
											curl_multi_add_handle($master, $ch);
											
										} else $test = true;
									} else $test = true;
								}
								curl_multi_remove_handle($master, $done['handle']);
								curl_close($done['handle']);
							}
						} while ($running);
						curl_multi_close($master);
						if ($test == true) {
							Log::write_log( Language::t("All mirrors is down!"), 3, $version );
							return array(null, null, null);
						}
					} else {
						foreach ($download_files as $file) {
							if ($mirror != null){
								$dest = Tools::ds($dir, $file);
								$test = true;
								while ($test) {
									$time = microtime(true);
									$header = Tools::download_file("http://$pair_key[0]:$pair_key[1]@$mirror$file", $dest);
									if (is_array($header) and !empty($header[0]) and preg_match("/200/", $header[0])) {
										$test = false;
										$size = $header['Content-Length'];
										$parsed_url = parse_url($mirror);
										$total_downloads += $size;
										Log::write_log(Language::t("From %s downloaded %s [%s] [%s/s]", $host, basename($file), Tools::bytesToSize1024($header['Content-Length']), Tools::bytesToSize1024($header['Content-Length']/(microtime(true) - $time))), 3, $version);
									$total_downloads += $header['Content-Length'];
										
									}
									else list($mirror, $new_version) = Mirror::check_mirror($version);
									if ($mirror == null) $test = false;
								}
							} else {
								Log::write_log( Language::t("All mirrors is down!"), 3, $version );
								return array(null, null, null);
							}
						}
					}
				} else {
					Log::write_log( Language::t("All mirrors is down!"), 3, $version );
					return array(null, null, null);
				}
			}
			$end_time = microtime(true);

			// Delete not needed files
			$del_files = 0;
			foreach(glob(Tools::ds($dir, 'v'.$version.'-rel-*'), GLOB_ONLYDIR) as $list){
				foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($list), RecursiveIteratorIterator::SELF_FIRST) as $fileObject) {
					if (!$fileObject->isDir()) {
						$test_file = $fileObject->getPathname();
						if (!in_array($test_file, $needed_files)) {
							@unlink($test_file);
							$del_files++;
						}
					}
				}
			}
			if ($del_files > 0 ){
				Log::write_log( Language::t("Deleted files: %s", $del_files), 3, $version );
			}
			
			// Delete empty folders
			$del_folders = 0;
			foreach(glob(Tools::ds($dir, 'v'.$version.'-rel-*'), GLOB_ONLYDIR) as $list){
				foreach(new RecursiveDirectoryIterator($list) as $fileObject) {
					$test_folder = $fileObject->getPathname();
					if (count(glob(Tools::ds($test_folder, '*'))) === 0 ) {
						@rmdir($test_folder);
						$del_folders++;
					}
				}
				if (count(glob(Tools::ds($list, '*'))) === 0 ) {
					@rmdir($list);
					$del_folders++;
				}
			}
			if ($del_folders > 0 ){
				Log::write_log( Language::t("Deleted folders: %s", $del_folders), 3, $version );
			}
			
			Log::write_log(Language::t("Total size database: %s", Tools::bytesToSize1024($total_size)), 3, $version);
			if (count($download_files)>0) {
				$average_speed = round($total_downloads/($end_time - $start_time));
				Log::write_log(Language::t("Total downloaded: %s", Tools::bytesToSize1024($total_downloads)), 3, $version);
				Log::write_log(Language::t("Average speed: %s/s", Tools::bytesToSize1024($average_speed)), 3, $version);
			}

			$dir  = Tools::ds(Config::get('web_dir'), $DIRECTORIES[$version]);
			if (!file_exists($dir)) @mkdir($dir, 0755, true);
			@file_put_contents($cur_update_ver, $new_content);
			unlink($tmp_update_ver);
			return array($total_size, $total_downloads, $average_speed);
		} else {
			Log::write_log( Language::t("Error while parsing update.ver from %s", $mirror), 3, $version );
			unlink($tmp_update_ver);
			return array(null, null, null);
		}
	}
	
	function exp_nod($Nuser, $Npass) {
		$NodProduct = "eav";
		$NodVer = "7.0.302.8";
		$NodLang = "419";
		$SysVer = "5.1";
		$ProdCode = "6A";
		$Platform = "Windows";
	
		$hash = "";
		$Cmap = array("Z", "C", "B", "M", "K", "H", "F", "S", "Q", "E", "T", "U", "O", "X", "V", "N");
		$Cmap2 = array("Q", "A", "P", "L", "W", "S", "M", "K", "C", "D", "I", "J", "E", "F", "B", "H");
		$i = 0;
		while ($i <= 7 And $i < strlen($Npass)) {
			$a = Ord($Nuser[$i]); 
			$b = Ord($Npass[$i]);
			If ($i >= strlen($Nuser)) $a = 0;
			$f = (2 * $i) << ($b & 3);
			$h = $b ^ $a;
			$g = ($h >> 4) ^ ($f >> 4);
			$hash .= $Cmap2[$g];
			$m = ($h ^ $f) & 15;
			$hash .= $Cmap[$m];
			++$i;
		};
		$j = 0;
		While ($j <= strlen($Nuser) -1) {
			$k = ord($Nuser[$j]);
			$hash .= $Cmap[($k >> 4)];
			$hash .= $Cmap2[($k & 15)];
			++$j;
		};

		$xml = '<?xml version="1.0" encoding="utf-8"?>
		<GETLICEXP>
		<SECTION ID="1000103">
		<LICENSEREQUEST>
		<NODE NAME="UsernamePassword" VALUE="'.$hash.'" TYPE="STRING" />
		<NODE NAME="Product" VALUE="'.$NodProduct.'" TYPE="STRING" />
		<NODE NAME="Version" VALUE="'.$NodVer.'" TYPE="STRING" />
		<NODE NAME="Language" VALUE="'.$NodLang.'" TYPE="DWORD" />
		<NODE NAME="UpdateTag" VALUE="" TYPE="STRING" />
		<NODE NAME="System" VALUE="'.$SysVer.'" TYPE="STRING" />
		<NODE NAME="EvalInfo" VALUE="0" TYPE="DWORD" />
		<NODE NAME="ProductCode" VALUE="'.$ProdCode.'" TYPE="DWORD" />
		<NODE NAME="Platform" VALUE="'.$Platform.'" TYPE="STRING" />
		</LICENSEREQUEST>
		</SECTION>
		</GETLICEXP>';

		$opts = array('http' =>
			array(
				'method'  => 'POST', 
				'header'  => 'Content-type: application/x-www-form-urlencoded', 
				'content' => $xml
			)
		);
		$context  = stream_context_create($opts);
		$response = file_get_contents('http://expire.eset.com/getlicexp', false, $context);

		$LicInfo = array();

		if (function_exists('simplexml_load_string')) {
			$Rxml = simplexml_load_string($response);
				
			$node = $Rxml->SECTION->LICENSEINFO;
			foreach ($node->NODE as $child) {
				$ElemAttr = $child->attributes();
				$LicInfo[(string)$ElemAttr->NAME] = (string)$ElemAttr->VALUE;
			}
		}
		return date('d.m.y', hexdec($LicInfo['ExpirationDate']));
	}
}
?>
Но решение от LBV помогло! Скрипт работает теперь.
НЕТ ВОЙНЕ!

Аватара пользователя
around
рядовой
Сообщения: 47
Зарегистрирован: 2008-04-24 21:31:45
Откуда: Saratov, Russia
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение around » 2016-10-08 2:26:13

Помогайте, пожалуйста.

Переехал со скриптом с VDS на Ubuntu 14.04 на VDS с CentOS 6.8… Скрипт перестал качать вообще что-либо…(

При попытке поиска ключей -

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

[2016-10-08, 02:09:41] Запущен скрипт 1.0.191014 [Freedom for Ukraine]
[2016-10-08, 02:09:41] Файл ключей пуст!
[2016-10-08, 02:09:41] Начат поиск в google.pattern
[2016-10-08, 02:09:42] Ссылка не найдена [http://www.google.ru/search?num=100&hl=ru&safe=off&as_qdr=d3&q=nod32+username+password&start=0]
[2016-10-08, 02:09:42] Ссылка не найдена [http://www.google.ru/search?num=100&hl=ru&safe=off&as_qdr=d3&q=nod32+username+password&start=100]
[2016-10-08, 02:09:42] Ссылка не найдена [http://www.google.ru/search?num=100&hl=ru&safe=off&as_qdr=d3&q=nod32+username+password&start=200]
[2016-10-08, 02:09:43] Ссылка не найдена [http://www.google.ru/search?num=100&hl=ru&safe=off&as_qdr=d3&q=nod32+username+password&start=300]
[2016-10-08, 02:09:44] Ссылка не найдена [http://www.google.ru/search?num=100&hl=ru&safe=off&as_qdr=d3&q=nod32+username+password&start=400]
[2016-10-08, 02:09:44] Файл ключей пуст!
[2016-10-08, 02:09:44] No working keys were found! The script has been stopped!
[2016-10-08, 02:09:44] Общее время выполнения: 00:03
[2016-10-08, 02:09:44] Скрипт остановлен.
Точно также и при попытке скачать базы:

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

2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_l2.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n1.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n2.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n3.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n4.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n5.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n6.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n7.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n8.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:57] [ver. 8] Ошибка загрузки файла http://um01.ru.eset.com/v8-rel-sta/mod_002_engine_31005/em002_32_n9.nup
[2016-10-08, 01:35:57] [ver. 8] Попытка загрузки с um01.ru.eset.com
[2016-10-08, 01:35:58] [ver. 8] Общий размер базы: 147.36 MBytes
PHP Notice:  Undefined offset: -9223372036854775808 in /opt/nod32ms/inc/classes/Tools.class.php on line 68
[2016-10-08, 01:35:58] [ver. 8] Всего загружено: 0 
PHP Notice:  Undefined offset: -9223372036854775808 in /opt/nod32ms/inc/classes/Tools.class.php on line 68
[2016-10-08, 01:35:58] [ver. 8] Средняя скорость: 0 /s
Но тут же пишет, что

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

[2016-10-08, 01:35:58] [ver. 8] Ваша база была успешно обновлена до версии 14244 (20161007)
Скрипт не менялся, просто была скопирована папка с ним. Я так понимаю, что либо поменялись пути, либо в системе чего-то не хватает. Подскажите, куда копать? :(
Troubles in Windows - reboot, troubles in *nix - be root...

Аватара пользователя
around
рядовой
Сообщения: 47
Зарегистрирован: 2008-04-24 21:31:45
Откуда: Saratov, Russia
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение around » 2016-10-10 16:33:38

Удалил все файлы скрипта, залил заново - всё заработало. Мистика.
Troubles in Windows - reboot, troubles in *nix - be root...

ionans
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-10-18 12:47:28

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение ionans » 2016-10-18 12:52:28

Подскажите пожалуйста содержание файла nod_keys.valid (с измененным ключом разумеется).автоматически ключ не ищет,хочу свой вставить,но в логе пишет,что файл ключа пуст,не могу понять,что не так.Заранее спасибо

Plague
рядовой
Сообщения: 28
Зарегистрирован: 2008-03-11 11:43:30

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Plague » 2016-10-18 13:08:38

ключ:пароль:датаистечения

ionans
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-10-18 12:47:28

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение ionans » 2016-10-18 13:51:50

[2016-10-18, 13:47:31] Запущен скрипт 1.0.141014 [Freedom for Ukraine]
[2016-10-18, 13:47:32] [ver. 3] Последняя версия базы 14298 (20161018) найдена на сервере um01.ru.eset.com
[2016-10-18, 13:47:33] [ver. 4] Последняя версия базы 14298 (20161018) найдена на сервере um01.ru.eset.com
[2016-10-18, 13:47:33] [ver. 5] Последняя версия базы 14298 (20161018) найдена на сервере um01.ru.eset.com
[2016-10-18, 13:47:33] [ver. 6] Последняя версия базы 14298 (20161018) найдена на сервере um01.ru.eset.com
[2016-10-18, 13:47:33] [ver. 7] Последняя версия базы 14298 (20161018) найдена на сервере um01.ru.eset.com
[2016-10-18, 13:47:33] Файл ключей пуст!


EAV-333333333:33333333:20.03.2018 что не так?оригинал заменил на 3

bodun
проходил мимо
Сообщения: 4
Зарегистрирован: 2012-11-26 11:06:11

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение bodun » 2016-10-18 13:58:08

EAV-33333333:333333333333:13.07.17
у меня выглядит так

Plague
рядовой
Сообщения: 28
Зарегистрирован: 2008-03-11 11:43:30

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Plague » 2016-10-18 14:00:58

у меня дата без точек. всё работает.

ionans
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-10-18 12:47:28

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение ionans » 2016-10-18 14:11:10

странно,уже все перебрал и перепробовал,все равно примерно такое содержание-


[2016-10-18, 14:05:50] Начат поиск в google.pattern
[2016-10-18, 14:05:50] Ссылка не найдена [http://www.google.ru/search?num=100&hl= ... rd&start=0]
[2016-10-18, 14:05:51] Ссылка не найдена [http://www.google.ru/search?num=100&hl= ... &start=100]
[2016-10-18, 14:05:51] Ссылка не найдена [http://www.google.ru/search?num=100&hl= ... &start=200]
[2016-10-18, 14:05:52] Ссылка не найдена [http://www.google.ru/search?num=100&hl= ... &start=300]
[2016-10-18, 14:05:52] Ссылка не найдена [http://www.google.ru/search?num=100&hl= ... &start=400]
[2016-10-18, 14:05:52] Файл ключей пуст!
[2016-10-18, 14:05:52] No working keys were found! The script has been stopped!

Plague
рядовой
Сообщения: 28
Зарегистрирован: 2008-03-11 11:43:30

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Plague » 2016-10-18 14:17:43

конфиг вроде по-русски написан, и то не читают

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

# Включение модуля поиска ключей. По умолчанию включено.
# Данный модуль используется для поиска валидных ключей на различных
# сайтах, используя для этого файлы шаблонов, находящиеся в папке pattern.

find_auto_enable = 0

ionans
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-10-18 12:47:28

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение ionans » 2016-10-18 14:25:35

Странно,изменил параметр на выкл.,но в логах по прежнему пишет,что не может найти ключ и файл ключа пуст

vsend
проходил мимо

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vsend » 2016-11-04 15:45:01

кто то под 10 версию уже дописывал?
дописал в init.php 10 => 'eset_upd/v10',
обновления стягивает но в генерируемом index.html указывает вес и версию
но это не главное судя по реестру мой ESS 10 тянет update.ver с eset_upd/v10/dll/
с папки dll
сравнил а там совсем разные обновления чем в eset_upd/v10/
какие могут быть идеи?

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

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение server801 » 2016-11-18 9:18:24

vsend писал(а):кто то под 10 версию уже дописывал?
дописал в init.php 10 => 'eset_upd/v10',
обновления стягивает но в генерируемом index.html указывает вес и версию
но это не главное судя по реестру мой ESS 10 тянет update.ver с eset_upd/v10/dll/
с папки dll
сравнил а там совсем разные обновления чем в eset_upd/v10/
какие могут быть идеи?
а как клиент будет обновляться ?

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

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение server801 » 2016-11-18 21:02:20

Поковырял 10 есет... Вот что ему нужно :
1. работать хочет только по ссылке http://nod.ru/eset_upd/v10/dll/ , реврайт тут не катит, nginx 10 версию не хочет понимать как юзер агента ..
2. ищет файл /v10-dll-rel-sta/mod_002_engine_31454/em002_64_n1.dll.nup, его нет , а есть только без dll посередине - em002_64_n1.nup
3. На перле написанный скрипт работает только для 7, 8 версии . 10 вообще не хочет , update.ver качает , но что то не поймет он что дальше ему делать

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

--2016-11-18 21:47:20--  http://um21.eset.com/eset_upd/v10/dll/update.ver
Resolving um21.eset.com (um21.eset.com)... 91.228.167.26
Connecting to um21.eset.com (um21.eset.com)|91.228.167.26|:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Digest algorithm="MD5", realm="eset", nonce="582f3ea878bd532d", qop="auth"
Reusing existing connection to um21.eset.com:80.
HTTP request sent, awaiting response... 200 OK
Length: 7922 (7.7K) [application/octet-stream]
Saving to: '/usr/local/www/nod/eset_upd/v10/dll/update.ver'

update.ver                                                  100%[==========================================================================================================================================>]   7.74K  --.-KB/s   in 0s

2016-11-18 21:47:20 (35.9 MB/s) - '/usr/local/www/nod/eset_upd/v10/dll/update.ver' saved [7922/7922]


UNRAR 5.30 beta 4 freeware      Copyright (c) 1993-2015 Alexander Roshal


Extracting from /usr/local/www/nod/eset_upd/v10/dll/update.ver

Extracting  /usr/local/www/nod/tmp/update.ver                         OK
All OK
Что то намудрили нодовцы )) У кого есть соображения на этот счет?

george.of.314
проходил мимо
Сообщения: 3
Зарегистрирован: 2016-11-20 22:46:55

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение george.of.314 » 2016-11-20 22:49:52

При запуске вручную работает все ОК
CRON - не хочет:

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

[2016-11-20, 21:38:17] [ver. 3] Ни одно зеркало не отвечает!
[2016-11-20, 21:38:17] [ver. 4] Ни одно зеркало не отвечает!
[2016-11-20, 21:38:17] [ver. 5] Ни одно зеркало не отвечает!
[2016-11-20, 21:38:17] [ver. 6] Ни одно зеркало не отвечает!
[2016-11-20, 21:38:17] [ver. 7] Ни одно зеркало не отвечает!
[2016-11-20, 21:38:17] [ver. 8] Ни одно зеркало не отвечает!
/usr/local/bin в PATH прописан
Подскажите, в чем может быть еще дело?

george.of.314
проходил мимо
Сообщения: 3
Зарегистрирован: 2016-11-20 22:46:55

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение george.of.314 » 2016-11-22 18:43:43

В дополнение (не могу редактировать сообщение)
CentOS
Linux somehost.somewhere 2.6.32-642.3.1.el6.x86_64 #1 SMP Tue Jul 12 18:30:56 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux