Butch3r Опубликовано 28 августа, 2014 · Жалоба Пришло Внимание! Напоминаем, что с 11:00 МСК 1.09.2014 будет закрыта возможность получения выгрузки реестра запрещенных сайтов в формате 1.0 как в ручном режиме, так и с использованием веб-сервиса - останется только возможность получения выгрузки в актуальном формате 2.0. Также будет отключен устаревший веб-сервис http://www.zapret-info.gov.ru/services/OperatorRequest/?wsdl Подробная информация об этом была размещена в Памятке оператору связи (http://vigruzki.rkn.gov.ru/docs/description_for_operators_actual.pdf) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Wingman Опубликовано 28 августа, 2014 · Жалоба Вот что пишет после запуска доработанного скрипта: Добавил и сюда больше дебага :) Вообще, это какая-то ошибка в сети между вами и API или в ответе сервера, какая именно - хз пока Too late to run INIT block at /usr/local/lib/perl5/site_perl/5.18/mach/Net/DNS.pm line 209. Попробуйте обновить Net/DNS: https://rt.cpan.org/Public/Bug/Display.html?id=96119 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NeXuSs Опубликовано 29 августа, 2014 (изменено) · Жалоба Попробуйте обновить Net/DNS: https://rt.cpan.org/...y.html?id=96119 Там опять эту заявку открыли, в версии 0.79 эта же ошибка вылезла у людей, буду наблюдать за процессом решения. Распишите пожалуйста что для корректной работы скрипта нужно? Какие оснастки необходимы для Перла вообще, с чем необходимо собрать openssl? Может у меня чего-то не хватает. А можно еще прикрутить вывод в какой-то лог о результатах работы скрипта, например о времени запуска, версии дампа (свежее, старее), сколько позиций добавлено, сколько удалено, ну и ошибки, если они были? Можно файл лога указать в конфиге, а скрипт уже будет писать в него, взяв информацию о его расположении оттуда. Да, и еще вот такое пишет в конце удачной работы: Not a HASH reference at /usr/local/lib/perl5/5.18/Net/SMTP.pm line 367. Что это означает? Изменено 29 августа, 2014 пользователем NeXuSs Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 29 августа, 2014 · Жалоба А у меня все плавно прошло. Поменял адреса WSDL, заменил getLastDumpDate на getLastDumpDateEx, добавил номер версию к sendRequest и все. Скрипт на Perl, должен быть в кодировке UTF-8: #!/usr/bin/perl -w use strict; use warnings; use vars qw ($dbh $soap %modes $options %id %var); use utf8; use Encode; use XML::LibXML; use DBI; use SOAP::Lite; use MIME::Base64; use Data::Dumper; $Data::Dumper::Useqq = 1; { no warnings 'redefine'; sub Data::Dumper::qquote { my $s = shift; return "'$s'"; } } $| = 1; binmode(STDIN, ':utf8'); binmode(STDOUT,':utf8'); binmode(STDERR,':utf8'); $modes{$_} = ($_ ~~ [split(' ',join(' ',@ARGV))]) ? 1 : 0 foreach (qw(interactive debug)); my @clock = localtime(time); $clock[5] += 1900; $clock[4] += 1; $var{'clock'} = sprintf('%6$04d-%5$02d-%4$02dT%3$02d:%2$02d:%1$02d',@clock); $var{'timestamp'} = time; $var{'source'} = "$0 pid#$$ uid $</$>"; $var{'template'} = join('',<DATA>); $dbh = DBI->connect("DBI:mysql:dbname:localhost", "user", "password") or die("* Fail on connect to database: $DBI::errstr"); $dbh->{'mysql_enable_utf8'} = 1; $dbh->do("set NAMES utf8"); $options = $dbh->selectall_hashref("select * from OPTIONS", [qw(SECTION NAME)]) or die("* Fail on retrieve options: $DBI::errstr"); &proc_options($options); my $stage = &proc_prepare(); unless ($stage) { print "$var{'clock'}: * Unknown stage, quit\n"; } else { $soap = SOAP::Lite->service($options->{'PROC'}->{'WSDL'}) or dir("* Fail on connect to web-service"); ($var{'LastDumpDate'}) = $soap->getLastDumpDateEx; $var{'timer'} = time; while ((time-$var{'timer'}) < (($options->{'PROC'}->{'TIMEOUT'}||3600)+($options->{'PROC'}->{'DELAY'}||60))) { $stage = &getrow('REQUESTS',$id{'request'}); if (!defined $stage) { print "$var{'clock'}: * Undefined stage, cancel\n"; last; } elsif ($stage->{'STAGE'} eq 'INIT') { my ($req,$sig) = &proc_init(); $dbh->do("update REQUESTS set STAGE=?, STAGE_COUNT=0, STAGE_TIME=0, LAST_DATE=?, SEND_FILE=?, SEND_SIGN=? where ID = $id{'request'}", undef, ('SEND',$var{'LastDumpDate'},$req,$sig)); } elsif ($stage->{'STAGE'} eq 'SEND') { my $sid = &proc_send($stage->{'SEND_FILE'}, $stage->{'SEND_SIGN'}); last unless ($sid); #sleep($options->{'PROC'}->{'DELAY'}||60); } elsif ($stage->{'STAGE'} eq 'RECEIVE') { my $res = &proc_receive($stage->{'SVC_SESSION'}); last; } else { print "$var{'clock'}: * Invalid stage $stage->{'STAGE'}, cancel\n"; last; } } unless ((time-$var{'timer'}) < (($options->{'PROC'}->{'TIMEOUT'}||3600)+($options->{'PROC'}->{'DELAY'}||60))) { print "$var{'clock'}: * Timeout\n"; $dbh->do("update REQUESTS set STAGE=? where ID = $id{'request'}", undef, ('FAIL')); } } $dbh->disconnect; sub _str($) { my $str = shift; return utf8::is_utf8($str) ? $str : decode_utf8($str); } sub getrow($;@) { my $table = shift; my @key = $dbh->primary_key(undef,undef,$table); return unless (@key); return unless ($#key==$#_); my $sql = "select * from $table where " . join(' and ', map {"$_ = ?"} @key); my $row = $dbh->selectrow_hashref($sql, undef, @_); return $row; } sub proc_options($) { my $hash = shift; my $cnt = grep {ref($_)} (values(%$hash)); if ($cnt) { while (my ($k,$v) = each %$hash) { &proc_options($v); $hash->{$k} = $v->{'VALUE'} if (exists($v->{'VALUE'})); } return; } $hash->{'VALUE'} = $hash->{'VALUE_'.$hash->{'DATATYPE'}}; delete $hash->{$_} foreach(grep {/VALUE_/} keys(%$hash)); delete $hash->{$_} foreach(qw(SECTION NAME DISPLAY)); } sub proc_prepare() { my $sql = "select * from REQUESTS where STAGE in ('INIT','SEND','RECEIVE')"; my $row = $dbh->selectrow_hashref($sql); unless ($row) { $dbh->do("insert into REQUESTS (CLOCK,SOURCE,STAGE) values (?,?,?)", undef, ($var{'clock'}, $var{'source'}, 'INIT')); $row = $dbh->selectrow_hashref($sql); } $id{'request'} = $row->{'ID'}; return $row->{'STAGE'} if ($row); } sub proc_init() { my $data = $var{'template'}; my $fields = { %{$options->{'PROVIDER'}}, 'CLOCK'=>sprintf('%6$04d-%5$02d-%4$02dT%3$02d:%2$02d:%1$02d',@clock) . '.000+04:00' }; $data =~ s{%([-\w\d]+)%}{$fields->{$1}||''}egs; $data =~ s/\n/\r\n/g; my ($req,$sig); { open FILE, ">", "/tmp/request.xml"; binmode FILE; print FILE encode('cp1251',$data); close FILE; system("$options->{'PROC'}->{'OPENSSL'} smime -sign -signer $options->{'PROC'}->{'CERT'} -outform DER -in /tmp/request.xml -out /tmp/request.sig"); } { open FILE, "/tmp/request.xml"; binmode FILE; $req = join('',<FILE>); close FILE; unlink "/tmp/request.xml"; } { open FILE, "/tmp/request.sig"; binmode FILE; $sig = join('',<FILE>); close FILE; unlink "/tmp/request.sig"; } return ($req,$sig); } sub proc_send($$) { my $req = shift; my $sig = shift; my @res = $soap->sendRequest($req, $sig, '2.0'); $res[$_] = &_str($res[$_]) foreach (0..$#res); if (@res) { if ($res[0] eq 'true') { $dbh->do("update REQUESTS set STAGE=?, STAGE_TIME=?, SVC_RESULT=?, SVC_COMMENT=?, SVC_SESSION=? where ID = $id{'request'}", undef, ('RECEIVE',time-$var{'timer'},$res[0],$res[1],$res[2])); return $res[2]; } elsif ($res[0] eq 'false') { $dbh->do("update REQUESTS set STAGE=?, STAGE_TIME=?, SVC_RESULT=?, SVC_COMMENT=? where ID = $id{'request'}", undef, ('FAIL',time-$var{'timer'},$res[0],$res[1])); } else { $dbh->do("update REQUESTS set STAGE=?, STAGE_TIME=?, SVC_RESULT=?, SVC_COMMENT=? where ID = $id{'request'}", undef, ('FAIL',time-$var{'timer'},'false',$res[1])); } } else { $dbh->do("update REQUESTS set STAGE=?, STAGE_TIME=? where ID = $id{'request'}", undef, ('FAIL',time-$var{'timer'})); } } sub proc_receive($) { my $sid = shift; my @res = $soap->getResult($sid); $res[$_] = &_str($res[$_]) foreach (0..$#res); if (@res) { if ($res[0] eq 'true') { my $data = decode_base64($res[1]); print "$var{'clock'}: OK, ZIP-file length " . length($data) . "\n"; $dbh->do("update REQUESTS set STAGE=?, STAGE_COUNT=STAGE_COUNT+1, STAGE_TIME=?, RES_RESULT=?, RES_DATA=? where ID = $id{'request'}", undef, ('DONE',time-$var{'timer'},$res[0],$data)); #open FILE, "/tmp/reg_dump.zip"; #binmode FILE; #print FILE $data; #close FILE; #if (-e "/tmp/reg_dump.zip") #{ # system("/usr/local/bin/unzip -o /tmp/reg_dump.zip -d /tmp"); #} } elsif (($res[0] eq 'false') && ($res[1] eq 'запрос обрабатывается')) { print "$var{'clock'}: Not OK: $res[1]\n"; $dbh->do("update REQUESTS set STAGE=?, STAGE_COUNT=STAGE_COUNT+1, STAGE_TIME=?, RES_RESULT=?, RES_COMMENT=? where ID = $id{'request'}", undef, ('RECEIVE',time-$var{'timer'},$res[0],$res[1])); } else { print "$var{'clock'}: Service fail, stop\n"; $dbh->do("update REQUESTS set STAGE=?, STAGE_COUNT=STAGE_COUNT+1, STAGE_TIME=?, RES_RESULT=?, RES_COMMENT=? where ID = $id{'request'}", undef, ('FAIL',time-$var{'timer'},'false',"Response: ".Dumper(\@res))); } } else { print "$var{'clock'}: Service not response, retry\n"; $dbh->do("update REQUESTS set STAGE_COUNT=STAGE_COUNT+1, STAGE_TIME=?, RES_RESULT=?, RES_COMMENT=? where ID = $id{'request'}", undef, (time-$var{'timer'},'false','Service not response')); } } __DATA__ <?xml version="1.0" encoding="windows-1251"?> <request> <requestTime>%CLOCK%</requestTime> <operatorName>%TITLE%</operatorName> <inn>%INN%</inn> <ogrn>%OGRN%</ogrn> <email>%EMAIL%</email> </request> Скрипт работает в паре с базой данных. База данных должна быть такая: CREATE TABLE IF NOT EXISTS `OPTIONS` ( `SECTION` varchar(80) NOT NULL COMMENT 'Секция параметра.', `NAME` varchar(80) NOT NULL COMMENT 'Наименование параметра.', `DATATYPE` enum('BOOLEAN','INTEGER','FLOAT','DATE','TIMESTAMP','TEXT','BLOB','URL','null') NOT NULL COMMENT 'Тип данных параметра.', `VALUE_BOOLEAN` tinyint(3) unsigned DEFAULT NULL COMMENT 'Значение параметра - логическое.', `VALUE_INTEGER` int(11) DEFAULT NULL COMMENT 'Значение параметра - целочисленное.', `VALUE_FLOAT` float DEFAULT NULL COMMENT 'Значение параметра - вещественное.', `VALUE_DATE` datetime DEFAULT NULL COMMENT 'Значение параметра - дата/время.', `VALUE_TIMESTAMP` timestamp NULL DEFAULT NULL COMMENT 'Значение параметра - unix timestamp.', `VALUE_TEXT` text COMMENT 'Значение параметра - текст.', `VALUE_BLOB` blob COMMENT 'Значение параметра - данные.', `VALUE_URL` varchar(1000) DEFAULT NULL COMMENT 'Значение параметра - ссылка.', `DISPLAY` varchar(200) DEFAULT NULL COMMENT 'Текстовое представление параметра.', `DESCRIPTION` varchar(200) DEFAULT NULL COMMENT 'Описание параметра.', PRIMARY KEY (`SECTION`,`NAME`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Параметры и настройки для автоматической работы с реестром.'; INSERT INTO `OPTIONS` (`SECTION`, `NAME`, `DATATYPE`, `VALUE_BOOLEAN`, `VALUE_INTEGER`, `VALUE_FLOAT`, `VALUE_DATE`, `VALUE_TIMESTAMP`, `VALUE_TEXT`, `VALUE_BLOB`, `VALUE_URL`, `DISPLAY`, `DESCRIPTION`) VALUES ('PROC', 'CERT', 'URL', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '/data/zapret-info/key/provider.pem', '/data/zapret-info/key/provider.pem', 'Файл ЭЦП для подписи'), ('PROC', 'DELAY', 'INTEGER', NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, '60', 'Задержка перед опросом сервера'), ('PROC', 'LOG', 'URL', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '/data/zapret-info/log/', '/data/zapret-info/log/', 'Каталог для журналов'), ('PROC', 'OPENSSL', 'URL', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '/data/zapret-info/bin/openssl', '/data/zapret-info/bin/openssl', 'Размещение OpenSSL'), ('PROC', 'TIMEOUT', 'INTEGER', NULL, 3600, NULL, NULL, NULL, NULL, NULL, NULL, '3600', 'Таймаут ответа сервера'), ('PROC', 'WEBSVC', 'URL', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'http://vigruzki.rkn.gov.ru/services/OperatorRequest/', 'http://vigruzki.rkn.gov.ru/services/OperatorRequest/', 'Адрес веб-сервиса'), ('PROC', 'WSDL', 'URL', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl', 'http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl', 'Адрес WSDL-схемы'), ('PROVIDER', 'ASN', 'INTEGER', NULL, 56580, NULL, NULL, NULL, NULL, NULL, NULL, '12345', 'Номер автономной системы'), ('PROVIDER', 'EMAIL', 'URL', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'email', 'email', 'Электронный адрес'), ('PROVIDER', 'INN', 'TEXT', NULL, NULL, NULL, NULL, NULL, '123', NULL, NULL, '123', 'ИНН'), ('PROVIDER', 'KPP', 'TEXT', NULL, NULL, NULL, NULL, NULL, '123', NULL, NULL, '123', 'КПП'), ('PROVIDER', 'OGRN', 'TEXT', NULL, NULL, NULL, NULL, NULL, '123', NULL, NULL, '123', 'ОГРН'), ('PROVIDER', 'TITLE', 'TEXT', NULL, NULL, NULL, NULL, NULL, 'Провайдер', NULL, NULL, 'Провайдер', 'Наименование оператора'), ('PROVIDER', 'WWW', 'URL', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Сайт', 'Сайт', 'Официальный сайт'), ('STATIC', 'LAST-DUMP-DATE', 'DATE', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Дата последнего обновления выгрузки из реестра'), ('STATIC', 'LAST-PROC-DATE', 'DATE', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Дата последнего запуска обновления реестра'); Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fint07 Опубликовано 29 августа, 2014 · Жалоба Здравствуйте уважаемые товарищи, у меня есть готовый "продукт" по выгрузке версии 2.0. У нас работает на freebsd. Сегодня подготовлю и завтра утром выложу в архиве. Скрипты на perl. На самом деле я добавил одну строчку. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
robingood Опубликовано 30 августа, 2014 · Жалоба Здравствуйте уважаемые товарищи, у меня есть готовый "продукт" по выгрузке версии 2.0. У нас работает на freebsd. Сегодня подготовлю и завтра утром выложу в архиве. Скрипты на perl. На самом деле я добавил одну строчку. Версия 2.0 ? С блэкджеком и шлю.ами ? Дайте две! :) Выкладывай! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fint07 Опубликовано 30 августа, 2014 (изменено) · Жалоба Версия 2.0 ? С блэкджеком и шлю.ами ? Дайте две! :) Выкладывай! С чем?В общем скидывать не стал архив, тут инструкция где брали до меня https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab43-bc6db27fe919/c535b6e5047ec69d304519fe81c2c9ac?noteKey=c535b6e5047ec69d304519fe81c2c9ac Я извиняюсь за то что не смог скрыть ссылку, в скрипте download.pl добавил лишь строчку "2.0" my @sendresult = $service->sendRequest( $xmlreq, $xmlreqsig, "2.0" #<--Вот тут и запустил, выгрузилось всё как надо. Если что отпишите плз заработало или нет. Изменено 30 августа, 2014 пользователем fint07 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
YuryD Опубликовано 31 августа, 2014 · Жалоба Я извиняюсь за то что не смог скрыть ссылку, в скрипте download.pl добавил лишь строчку "2.0" my @sendresult = $service->sendRequest( $xmlreq, $xmlreqsig, "2.0" #<--Вот тут xml-parser.pl сильно надо править? старый прожует новый формат выгрузки ? Или просто добавить новый обработчик if ($key2 eq хернякакаято) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fint07 Опубликовано 31 августа, 2014 · Жалоба Я не правил его вообще, в перле я не силён. Поправил только то что написал, и выгрузилось, сравнил с примером в памятке, всё точно так как им и надо, я надеюсь что сам ничего не упустил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
TheUser Опубликовано 31 августа, 2014 · Жалоба Коллеги, а у меня тестовый УРЛ (http://vigruzki.rkn.gov.ru/services/OperatorRequestTest?wsdl) возвращает тестовый файл с formatVersion="2.0", а боевой (http://vigruzki.rkn.gov.ru/services/OperatorRequest?wsdl) - "запрос обрабатывается". Куда копать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snvoronkov Опубликовано 31 августа, 2014 · Жалоба Коллеги, а у меня тестовый УРЛ (http://vigruzki.rkn.gov.ru/services/OperatorRequestTest?wsdl) возвращает тестовый файл с formatVersion="2.0", а боевой (http://vigruzki.rkn.gov.ru/services/OperatorRequest?wsdl) - "запрос обрабатывается". Куда копать? В область увеличения паузы между запросом и началом выгрузки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NeXuSs Опубликовано 1 сентября, 2014 (изменено) · Жалоба Я не правил его вообще, в перле я не силён. Поправил только то что написал, и выгрузилось, сравнил с примером в памятке, всё точно так как им и надо, я надеюсь что сам ничего не упустил. А каким парсером пользуетесь, тем, который в ссылке, приведенной вами выше, находится? Изменено 1 сентября, 2014 пользователем NeXuSs Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dimic Опубликовано 1 сентября, 2014 · Жалоба Вообще пока ничего не менял. Последняя выгрузка: Sep 1 15:02 out-2014-09-01T15:02:01.000+08:00.zip Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NeXuSs Опубликовано 1 сентября, 2014 · Жалоба Вообще пока ничего не менял. Последняя выгрузка: Sep 1 15:02 out-2014-09-01T15:02:01.000+08:00.zip Письмо от Роскомнадзора: Внимание! Напоминаем, что с 11:00 МСК 1.09.2014 будет закрыта возможность получения выгрузки реестра запрещенных сайтов в формате 1.0 как в ручном режиме, так и с использованием веб-сервиса - останется только возможность получения выгрузки в актуальном формате 2.0. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dimic Опубликовано 1 сентября, 2014 (изменено) · Жалоба Письмо от Роскомнадзора: ... Сори, не гулядел в логе: ------------------------------------- Mon Sep 1 17:01:00 KRAT 2014 got new LastDumpDate version 1409558520000, try send request error request не указана версия формата codestring file not found Import complette. Добавил в метод GetRequest аттрибут-версию. Вроде бы, работает. з.ы. парсер старый Изменено 1 сентября, 2014 пользователем Dimic Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fint07 Опубликовано 2 сентября, 2014 (изменено) · Жалоба Я не правил его вообще, в перле я не силён. Поправил только то что написал, и выгрузилось, сравнил с примером в памятке, всё точно так как им и надо, я надеюсь что сам ничего не упустил.А каким парсером пользуетесь, тем, который в ссылке, приведенной вами выше, находится? Парсер тот что в примере я скинул и не менял его. Вот сейчас старая версия не выгружается, новая всё ок. Изменено 2 сентября, 2014 пользователем fint07 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
swsn Опубликовано 2 сентября, 2014 · Жалоба try // попытаться произвести запрос на получение РЗС { // подключиться к веб-службе РЗС по протоколу SOAP $rzs = new SoapClient ($wsdl_url); // произвести запрос $response = $rzs -> sendRequest ( array ( 'requestFile' => $request, // запрос 'signatureFile' => $sign, // подпись 'dumpFormatVersion' => '2.0', // версия выгрузки ) ); // сохранить уникальный код запроса в отдельную переменную $request_code = $response -> code; } Вот таким запросом я получаю дамп formatVersion="2.0". Благодарю, все получилось. :) Спасибо, мне тоже помогло :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
YuryD Опубликовано 3 сентября, 2014 · Жалоба Пролистал свежеполученный dump v2, не нашел ни одного ipSubnet. Кривизна кодировок url сохранилась. Будем ждать ? Они кстати здорово меня купили, я в отпуске, 1-го с утра посмотрел - всё работает, а к вечеру только задумался О... Пришлось в 22 местного кривить скрипты.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Korgoth Опубликовано 3 сентября, 2014 (изменено) · Жалоба Дайте ссылку на рабочий парсер, я что то не пойму, парсер ip-abuse.txt не создает. Удалось получить вот такую надпись: End tag mismatch (domain != url) [Ln: 1, Col: 507957] XML-битый? Изменено 3 сентября, 2014 пользователем Korgoth Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
starchik Опубликовано 3 сентября, 2014 · Жалоба /home/rzs# ./zapret.pl Global symbol "@result" requires explicit package name at ./zapret.pl line 232. Global symbol "@result" requires explicit package name at ./zapret.pl line 232. Global symbol "@result" requires explicit package name at ./zapret.pl line 234. Global symbol "@result" requires explicit package name at ./zapret.pl line 237. Execution of ./zapret.pl aborted due to compilation errors. кто подскажет в чем дело? 222 sub getLastDumpDate 223 { 224 eval { 225 my $soap= SOAP::Lite->service( $api_url ); 226 my @result = $soap->getLastDumpDateEx(); 227 }; 228 if( $@ ) { 229 print "Error while getLastDumpDate: ".$@."\n"; 230 exit; 231 } 232 if( !defined($result[0]) || $result[0] !~ /^(\d+)$/ ) { 233 print "Can't get lastDumpDateEx!"; 234 print Dumper(@result); 235 exit; 236 } else { 237 my $stamp = $result[0] / 1000; 238 return $stamp; 239 } 240} Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snvoronkov Опубликовано 3 сентября, 2014 · Жалоба Объявление массива за скобки вынесите. Скобки ограничивают область видимости переменной. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
starchik Опубликовано 3 сентября, 2014 · Жалоба а можно с примером, не силен в перле....:( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snvoronkov Опубликовано 3 сентября, 2014 · Жалоба а можно с примером, не силен в перле....:( Мона. Только завтра. Со смарта это делать - гнусно и печально. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
lcgc Опубликовано 3 сентября, 2014 · Жалоба 224 eval { 225 my $soap= SOAP::Lite->service( $api_url ); 226 my @result = $soap->getLastDumpDateEx(); 227 }; в результате @result - локальна внутри eval а вы её как "глобальную" используете как вариант sub getLastDumpDate { my @result; eval { my $soap= SOAP::Lite->service( $api_url ); @result = $soap->getLastDumpDateEx(); }; Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
starchik Опубликовано 3 сентября, 2014 · Жалоба спасибо Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...