The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Автоматическое получение списка запрещенных сайтов от РОСКОМНАДЗОР с помощью Perl
Скрипт для автоматической загрузки списка запрещенных сайтов:

   use MIME::Base64;
   use SOAP::Lite;
   open REQ,'<request.xml'; 
   $req.=$_ while <REQ>; 
   close REQ;   
   encode_base64($req);

   open SIG,'<PKCS#7'; 
   $sig.=$_ while <SIG>;
   close SIG;

   $soap = SOAP::Lite->service('http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl');
   $r = $soap->getLastDumpDate(); 
   print "time: $r\\n";

   @r = $soap->sendRequest($req, $sig); 
   $code = $r[2]; 
   print "code: $code\\n";

   sleep 1, print "$_\\n" for 1..300;
   @r = $soap->getResult($code);
   open ZIP,'>register.zip'; 
   print ZIP decode_base64($r[$#r]); 
   close ZIP;


Дополнение:
Сервис рнк обновился, ниже пример автоматической выгрузки в соответствии с
изменёнными рекомендациями:

   use MIME::Base64;
   use SOAP::Lite;
   
   undef $/;

   open REQ,'</home/rkn/request.xml';
   $req = <REQ>;
   close REQ;
   encode_base64($req);

   open SIG,'</home/rkn/PKCS#7';
   $sig = <SIG>;
   close SIG;

   $dfv = '2.0';

   $soap = SOAP::Lite->service('http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl');
   $a = $soap->getLastDumpDate();
   @a = $soap->sendRequest($req, $sig, $dfv);

   while(1) {
        sleep 60;
        @b = $soap->getResult($a[2]);
        last if $b[2] ne 0;
   }

   if($b[2] eq 1){
        open ZIP,'>/home/lennotoecom/file.zip';
        print ZIP decode_base64($b[1]);
        close ZIP;
   }


Цикл выполняется раз в минуту (по рекомендации ркн),
каждый раз проверяя полученный от сервиса код ($b[2]),
пока переменная 0 цикл выполняется, как только код меняется на значения от -1
до -7(ошибки) или 1 (успешный),
цикл завершается.

Значения кодов ошибок можно посмотреть в официальной документации, по ссылке.
 
08.11.2013 , Автор: Lennotoecom
Ключи: perl, script, soap / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / Perl / Полезные подпрограммы на Perl / Подпрограммы для WEB

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.2, VecH, 20:07, 10/11/2013 [ответить] [смотреть все]
  • +/
    Can't locate SOAP/Lite.pm
     
     
  • 2.3, slavon, 20:09, 10/11/2013 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    cpan install SOAP::Lite
     
     
  • 3.5, Lennotoecom, 02:46, 11/11/2013 [^] [ответить] [смотреть все]
  • +/
    и убедитесь также что у вас есть библиотеки libssl-dev expat libexpat1-dev или... весь текст скрыт [показать]
     
     
  • 4.34, ркрцке, 01:42, 19/03/2014 [^] [ответить] [смотреть все]  
  • +/
    а может тсё же перловый соап поставить?
     
  • 1.4, sabitov, 21:04, 10/11/2013 [ответить] [смотреть все]  
  • +/
    IMHO, конечно, но лучше вот это:

    svn checkout svn://svn.code.sf.net/p/z-i/code-0/trunk z-i-code-0
    http://sourceforge.net/p/z-i/code-0/HEAD/tree/dump.csv?format=raw

    Чудесный цсв, и никаких XML :)

     
     
  • 2.6, Аноним, 09:05, 11/11/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    В продакшин блокировку, основанную на загрузке данных через посредника не выпуст... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.7, Дядя_Федор, 11:08, 11/11/2013 [^] [ответить] [смотреть все]  
  • +/
    Все может быть намного печальнее РКН фиксируют обращения провайдеров к своему р... весь текст скрыт [показать]
     
     
  • 4.10, aurved, 14:26, 11/11/2013 [^] [ответить] [смотреть все]  
  • +/
    письмо счастья придет и обязательно, но вроде возможен вариант -- договор официа... весь текст скрыт [показать]
     
     
  • 5.11, Дядя_Федор, 14:29, 11/11/2013 [^] [ответить] [смотреть все]  
  • +/
    Да - такой вариант возможен, Вы правы ... весь текст скрыт [показать]
     
  • 1.8, WisDem, 13:58, 11/11/2013 [ответить] [смотреть все]  
  • +/
    что-то упорно пишет неверный алгоритм ЭП
    запрос мы уже подписанный отправляем, или он подписывается по мере прохождения скрипта?
     
     
  • 2.9, Lennotoecom, 14:24, 11/11/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    в скрипте ничего не подписывается request xml и PKCS 7 которые вы отправляете в... весь текст скрыт [показать] [показать ветку]
     
  • 1.12, aurved, 14:29, 11/11/2013 [ответить] [смотреть все]  
  • +/
    Тоже вот неплохой вариант, да еще некоторые вещи инетресно расписаны, например как вытащить закрытый ключ из носителя, а уж потом его на nix-сервер скопировать и там им подписывать запросы -- https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab43-bc6db27fe919/c5
     
  • 1.13, WisDem, 14:51, 11/11/2013 [ответить] [смотреть все]  
  • +/
    интересно, в ручном режиме час назад запустил, все прошло, сейчас упорно ошибку выдает. хм тестируем дальше
     
     
  • 2.14, Дядя_Федор, 16:00, 11/11/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вы поаккуратнее с тестированием Были уже замечены случаи блокирования на их са... весь текст скрыт [показать] [показать ветку]
     
  • 1.15, pavlinux, 21:39, 11/11/2013 [ответить] [смотреть все]  
  • +/
    > Скрипт для автоматической загрузки списка запрещенных сайтов:

    Неправильная тема, должно быть "Скрипт для автоматической загрузки списка сайтов маршрутизируемых в сеть TOR"

     
  • 1.16, WisDem, 07:59, 12/11/2013 [ответить] [смотреть все]  
  • +/
    все заработало, после общения с тп)
     
     
  • 2.17, Дядя_Федор, 08:41, 12/11/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > все заработало, после общения с тп)

    На блокировку таки нарвались?


     
  • 1.19, Nope, 20:09, 12/11/2013 [ответить] [смотреть все]  
  • +/
    Wide character in subroutine entry at ./unlaw.pl line 25.
     
     
  • 2.20, Lennotoecom, 10:39, 13/11/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    1 отправляемые файлы в ручном режиме работают 2 попробуйте только дату получи... весь текст скрыт [показать] [показать ветку]
     
  • 1.28, ap_, 17:12, 27/11/2013 [ответить] [смотреть все]  
  • +1 +/
    С перловским SOAP::Lite (1.08) иногда в результатах пусто. Данным скриптом ошибка не отлавливается.

    Через tcpdump установлена ошибка вида SOAP-ENV:VersionMismatch и Wrong.Version

    Причины оказались аналогичны этим
    http://www.perlmonks.org/?node_id=650014
    https://rt.cpan.org/Public/Bug/Display.html?id=29505

    Помогло такое решение:
    перед
    $soap = SOAP::Lite->service ....
    указать
    $SOAP::Constants::PREFIX_ENV = 'SOAP-ENV';

    PS:1 день потрачен ;).

     
  • 1.30, Артадокс, 12:27, 04/03/2014 [ответить] [смотреть все]  
  • +/
    Всем огромное спасибо за файлик, но пока допер что вместо open SIG,'<PKCS#7'; необходимо указать open SIG,'<файл_с_расширением.sign'; потратил много нервов :(((((((
     
  • 1.31, хрен_с_горы, 20:05, 08/03/2014 [ответить] [смотреть все]  
  • +/
    гы-гы это авторы предлагают подпись на сервере хранить? один вопрос - вы идиоты?
     
  • 1.32, хрен_с_горы, 12:38, 09/03/2014 [ответить] [смотреть все]  
  • +/
    да сам скрип напмсан либо пьным либо безумным конструкция
       $code = $r[2];
       print "code: $code\n";

    просто умиляет.

     
  • 1.33, пываппукпйцук, 22:20, 10/03/2014 [ответить] [смотреть все]  
  • +/
    дополню.

    навсамом деле конешно "мего проффесеониальный связьнадзор" предлагает именно так и делать. только что будет если сервер хакнули и под пись ушла на сторону?

    видимо осознав бредовость затеи с хранием ключа на сервере они пошли на встречу (признали свой дибилизм) - дату в xml запросе можно не менять, а один раз подписать и на сервере хранить подписанный запрос, вместо хранения приватьной подписи, что позволяет вернуть её на законное место - в сейф руководдителя конторы.

     
  • 1.35, Alpha, 00:52, 14/08/2014 [ответить] [смотреть все]  
  • +/
    Надо бы поправить скриптик... С 1 августа 2014 изменился порядок выгрузка.
     
     
  • 2.36, Lennotoecom, 11:20, 14/08/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Я уже запостил, находится на модерации
     
  • 1.37, Артадокс, 17:07, 14/08/2014 [ответить] [смотреть все]  
  • +/
    Проблемммма: ребята подскажиет что делать
    1.Сдох жесткий с Debian - установил новый
    2.Залил скрипты со старого(бекапенные) рабочие
    3.Поставил SOAP::Lite 1.11
    в файле register.zip 1 байт......
    Не могу понять куда дальше смотреть.То что предлагал  ap_, 17:12, 27/11/2013 тоже делал....
    В тупике......
     
  • 1.38, Alpha, 00:01, 15/08/2014 [ответить] [смотреть все]  
  • +/
    Походу модераторам не очень интересно постить полезные темы... Чето как-то долго на модерации находится...
     
  • 1.39, Артадокс, 11:18, 15/08/2014 [ответить] [смотреть все]  
  • +/
    Огромное спасибо Lennotoecom всего тебе наилучшего, чтобы все было в кайф.....
    Задача решилась новым скриптом.... :))))
     
  • 1.40, Ogma, 12:41, 17/08/2014 [ответить] [смотреть все]  
  • +/
    Народ, где можно взять новый скрипт?
     
  • 1.41, Ogma, 12:42, 17/08/2014 [ответить] [смотреть все]  
  • +/
    А все увидел:)
     
  • 1.42, Walkorner, 11:25, 20/01/2015 [ответить] [смотреть все]  
  • +/
    Народ - никто не задумался как извлечь url из архива который скачиваеца в виде списка в отдельный файл?
    Я пробовал так

    cat dump.xml |sed 's/^.*http/http/g' | grep -o "http://[.\a-z\.]*" > file.txt

    Но в итоге там есть такие записи

    http://mail
    http://
    http://it

    И т.п.
    Плеазе хелп!

     
  • 1.43, Walkorner, 14:31, 04/03/2015 [ответить] [смотреть все]  
  • +/
    Вот те раз че никто ничего не предложит?????
    Да видно перевелись на земле добры молодцы ....
     
     
  • 2.45, Максим, 14:35, 28/07/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Добрый у вас заработал скрипт для загрузки списка запрещенных сайтов?
     
  • 1.44, Максим, 14:34, 28/07/2015 [ответить] [смотреть все]  
  • +/
    Уже второй день бьюсь вылезает ошибка

    [ErrorCode: 0x00000000]
    Use of uninitialized value in subroutine entry at C:/Perl64/site/lib/SOAP/Lite.p
    m line 289.
    Use of uninitialized value in subroutine entry at C:/Perl64/site/lib/SOAP/Lite.p
    m line 289.

    при работе с данным способом, soap на себя самого ругается кто знает как решить? или код уже не актуален?

     
     
  • 2.46, Dmitry, 17:53, 19/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > Уже второй день бьюсь вылезает ошибка
    > [ErrorCode: 0x00000000]
    > Use of uninitialized value in subroutine entry at C:/Perl64/site/lib/SOAP/Lite.p
    > m line 289.
    > Use of uninitialized value in subroutine entry at C:/Perl64/site/lib/SOAP/Lite.p
    > m line 289.
    > при работе с данным способом, soap на себя самого ругается кто знает
    > как решить? или код уже не актуален?

    Такая же проблема

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor