URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9707
[ Назад ]

Исходное сообщение
"Автоматизация процесса выгрузки операторами связи zapret@info.r"

Отправлено Alexadm , 15-Июл-13 17:29 
Добрый день, необходима помощь для автоматизации процесса выгрузки на zapret.info@gov.ru, если имеется ЭЦП. Кто нибудь сталкивался с такой проблемой??? Заранее спасибо...


Содержание

Сообщения в этом обсуждении
"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Pahanivo , 15-Июл-13 17:35 
> Добрый день, необходима помощь для автоматизации процесса выгрузки на zapret.info@gov.ru,
> если имеется ЭЦП. Кто нибудь сталкивался с такой проблемой??? Заранее спасибо...

хера вы проснулися )))) да уж куча примеров в инете и хуату - правдо часть корявые ))
если совсем туго могу свой подкинуть


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 15-Июл-13 17:39 
>> Добрый день, необходима помощь для автоматизации процесса выгрузки на zapret.info@gov.ru,
>> если имеется ЭЦП. Кто нибудь сталкивался с такой проблемой??? Заранее спасибо...
> хера вы проснулися )))) да уж куча примеров в инете и хуату
> - правдо часть корявые ))
> если совсем туго могу свой подкинуть

Если не трудно можете помоч???  Спасибо...


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 15-Июл-13 18:18 
>>> Добрый день, необходима помощь для автоматизации процесса выгрузки на zapret.info@gov.ru,
>>> если имеется ЭЦП. Кто нибудь сталкивался с такой проблемой??? Заранее спасибо...
>> хера вы проснулися )))) да уж куча примеров в инете и хуату
>> - правдо часть корявые ))
>> если совсем туго могу свой подкинуть
> Если не трудно можете помоч???  Спасибо...

Народ, вы где???


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено name , 15-Июл-13 18:21 
>>>> Добрый день, необходима помощь для автоматизации процесса выгрузки на zapret.info@gov.ru,
>>>> если имеется ЭЦП. Кто нибудь сталкивался с такой проблемой??? Заранее спасибо...
>>> хера вы проснулися )))) да уж куча примеров в инете и хуату
>>> - правдо часть корявые ))
>>> если совсем туго могу свой подкинуть
>> Если не трудно можете помоч???  Спасибо...
> Народ, вы где???

на наге целая тема с кучей примеров


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 15-Июл-13 18:40 
>>>>> Добрый день, необходима помощь для автоматизации процесса выгрузки на zapret.info@gov.ru,
>>>>> если имеется ЭЦП. Кто нибудь сталкивался с такой проблемой??? Заранее спасибо...
>>>> хера вы проснулися )))) да уж куча примеров в инете и хуату
>>>> - правдо часть корявые ))
>>>> если совсем туго могу свой подкинуть
>>> Если не трудно можете помоч???  Спасибо...
>> Народ, вы где???
> на наге целая тема с кучей примеров

Там половина кривых, и к тому же меня интересует на bash, это реально, ??


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено name , 15-Июл-13 18:46 
> Там половина кривых, и к тому же меня интересует на bash, это
> реально, ??

и в чем же там кривизна способов?
perl значит криво, а bash не криво?


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 15-Июл-13 18:47 
>> Там половина кривых, и к тому же меня интересует на bash, это
>> реально, ??
> и в чем же там кривизна способов?
> perl значит криво, а bash не криво?

Просто ближе всего мне bash..


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Дядя_Федор , 16-Июл-13 08:19 
> Просто ближе всего мне bash..

Вам шашечки или ехать? Берите на наге уже готовые решения и пробуйте. Зачем изобретать велосипед? Можете вот тут еще почитать про API - http://antizapret.info/api.php Хотя РКН люлей все равно ввалит, если обнаружит (если еще не обнаружил), что именно ВЫ не обращались к их доблестному сайту. ;) У нас вон соседи попали на штраф недетский по этому поводу. По решению суда, между прочим.



"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Pahanivo , 16-Июл-13 10:02 
>> Просто ближе всего мне bash..
>  Вам шашечки или ехать? Берите на наге уже готовые решения и
> пробуйте. Зачем изобретать велосипед? Можете вот тут еще почитать про API
> - http://antizapret.info/api.php Хотя РКН люлей все равно ввалит, если обнаружит (если
> еще не обнаружил), что именно ВЫ не обращались к их доблестному
> сайту. ;) У нас вон соседи попали на штраф недетский по
> этому поводу. По решению суда, между прочим.

1) у меня на перле, и не понимаю упорного требования баш
2) тыыыы ключи уже из криптоконтейнера извлек и подготовил для openssl?


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Дядя_Федор , 16-Июл-13 10:22 
> 1) у меня на перле, и не понимаю упорного требования баш

Наш программер на Сях написал. :)

> 2) тыыыы ключи уже из криптоконтейнера извлек и подготовил для openssl?

Вот честно - не вдавался в подробности. :) Работает, и слава Богу. Все вытягивается и прогружается потом в CISCO SCE-8080.



"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Pahanivo , 16-Июл-13 14:40 
да е мае, не тебе ж вопрос )) да не табе вопрос а топигстартеру ))
судя пл №12 он уже потоптался по этим граблям ))

"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено aurved , 16-Июл-13 00:36 
https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab...

"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 16-Июл-13 11:46 
> https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab...

Всё нормально проходит, вот только программа  P12FromGostCSP не работает... С помощью криптоПро скопировал сертификат в реестр на винде, далее запускаю программу  P12FromGostCSP но ничего не происходит, у кого нибудь есть рабочая версия?? Спасибо


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 16-Июл-13 13:36 
>> https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab...
> Всё нормально проходит, вот только программа  P12FromGostCSP не работает... С помощью
> криптоПро скопировал сертификат в реестр на винде, далее запускаю программу  
> P12FromGostCSP но ничего не происходит, у кого нибудь есть рабочая версия??
> Спасибо

Программа заработала...


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 17-Июл-13 15:25 
>>> https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab...
>> Всё нормально проходит, вот только программа  P12FromGostCSP не работает... С помощью
>> криптоПро скопировал сертификат в реестр на винде, далее запускаю программу
>> P12FromGostCSP но ничего не происходит, у кого нибудь есть рабочая версия??
>> Спасибо
> Программа заработала...

Всем большое спасибо, всё получилось...)


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено likemay , 20-Авг-13 12:14 
>>>> https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab...
>>> Всё нормально проходит, вот только программа  P12FromGostCSP не работает... С помощью
>>> криптоПро скопировал сертификат в реестр на винде, далее запускаю программу
>>> P12FromGostCSP но ничего не происходит, у кого нибудь есть рабочая версия??
>>> Спасибо
>> Программа заработала...
> Всем большое спасибо, всё получилось...)

Ребят, есть ли варианты скопировать сертификат из закрытого контейнера? Средствами КриптоПро не возможно это сделать.


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 20-Авг-13 12:33 
>>>>> https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab...
>>>> Всё нормально проходит, вот только программа  P12FromGostCSP не работает... С помощью
>>>> криптоПро скопировал сертификат в реестр на винде, далее запускаю программу
>>>> P12FromGostCSP но ничего не происходит, у кого нибудь есть рабочая версия??
>>>> Спасибо
>>> Программа заработала...
>> Всем большое спасибо, всё получилось...)
> Ребят, есть ли варианты скопировать сертификат из закрытого контейнера? Средствами КриптоПро
> не возможно это сделать.

Сначала сертификат с помощью криптоПро копируешь в реестр, далее програмкой P12FromGostCSP из реестра сохраняешь ключ к примеру на рабочем столе в расширении pfx.


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено likemay , 20-Авг-13 12:35 
>[оверквотинг удален]
>>>>> криптоПро скопировал сертификат в реестр на винде, далее запускаю программу
>>>>> P12FromGostCSP но ничего не происходит, у кого нибудь есть рабочая версия??
>>>>> Спасибо
>>>> Программа заработала...
>>> Всем большое спасибо, всё получилось...)
>> Ребят, есть ли варианты скопировать сертификат из закрытого контейнера? Средствами КриптоПро
>> не возможно это сделать.
> Сначала сертификат с помощью криптоПро копируешь в реестр, далее програмкой P12FromGostCSP
> из реестра сохраняешь ключ к примеру на рабочем столе в расширении
> pfx.

Вот тут и затык, на рутокене отсутсвует маркер разрешающий копирование контейнера. Т.е. штатными средствами не могу скопировать контейнер в реестр.


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Pahanivo , 22-Авг-13 11:28 
> Вот тут и затык, на рутокене отсутсвует маркер разрешающий копирование контейнера. Т.е.
> штатными средствами не могу скопировать контейнер в реестр.

обратится к вашему поставщику ЭЦП?


"Автоматизация процесса выгрузки операторами связи zapret@info.r"
Отправлено Alexadm , 04-Сен-13 14:36 
>> Вот тут и затык, на рутокене отсутсвует маркер разрешающий копирование контейнера. Т.е.
>> штатными средствами не могу скопировать контейнер в реестр.
> обратится к вашему поставщику ЭЦП?

Ну как успехи с выгрузкой реестра запрещённых сайтов??


"Доработка скрипта"
Отправлено Серега , 25-Авг-14 08:43 
> Ну как успехи с выгрузкой реестра запрещённых сайтов??

Имеется скрипт на php все работает с 1 форматом выгрузки, кто подскажет где надо подредактировать ver num чтоб пошла выгрузка 2 версии, увы я нуб php незнаю((.
!/usr/bin/php

<?php

    echo "##############################\n### Vigryzka!!!! ###\n##############################\n\n";
    
    ini_set('soap.wsdl_cache_enabled', 0);
    ini_set('soap.wsdl_cache_ttl',0);

    $date = date("Y-m-d");
    $time = date("H:i:s");
    
    $wsdl    = "http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl&qu...
    $ossl    = "";
    $fold    = "/usr/zapretinfo/";
    $fP12    = "{$fold}p12.pem";
    $fZapros = "{$fold}zapros.xml";
    $fSigned = "{$fold}zapros.sig";
    $fZip    = "{$fold}zapros.zip";

    $xml  = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>\n";
    $xml .= "<request>\n";
    $xml .= "\t<requestTime>{$date}T{$time}.000+04:00</requestTime>\n";
    $xml .= "\t<operatorName>blablabla"</operatorName>\n";
    $xml .= "\t<inn>blablabla</inn>\n";
    $xml .= "\t<ogrn>blablabla</ogrn>\n";
    $xml .= "\t<email>blablabla</email>\n";
    $xml .= "</request>";

    $xml  = iconv("utf-8", "cp1251", $xml);
    
    if(file_put_contents($fZapros, $xml)) {
    
        echo "==> File request created...\n";
        
        if(file_exists($fSigned)) {
        
            $removeSign = shell_exec("rm {$fSigned}");
        
        }

        $cmd = shell_exec("/usr/local/openssl/bin/openssl smime -sign -in {$fZapros} -out {$fSigned} -binary -signer {$fP12} -outform DER -nodetach");
    
        if($cmd == "") {
            
            echo "==> Signing created...\n";
            
        }else{
        
            echo "==> Error: {$cmd}\n";
        
        }

    }else{
        echo "==> File not created!\n";
    }

    if(file_exists($fZapros) && file_exists($fSigned)) {
        
        // dump.xml
        
        if($client = new SoapClient($wsdl, array('features' => SOAP_USE_XSI_ARRAY_TYPE))) {
            
            $dataRequest = array(
            
                'requestFile'=>file_get_contents($fZapros),
                'signatureFile'=>base64_encode(file_get_contents($fSigned))
            
            );
            
            $request = $client -> sendRequest($dataRequest);
            
            if($request->result) {
            
                $codeResult = $request->code;
                
                echo "==> Request accepted (code:{$codeResult})...\n==> Waiting..";
                
                for($i=1;;$i++) {
                
                    $dump = $client -> getResult(array('code'=>$codeResult));
                
                    if($dump->result) {                      
                
                    file_put_contents($fZip, $dump->registerZipArchive);
                    shell_exec("unzip {$fZip} -d {$fold}");
                    shell_exec("rm {$fold}dump.xml.sig {$fZapros} {$fSigned} {$fZip}");
                    shell_exec("mv {$fold}dump.xml {$fold}dumps/{$date}_{$time}_dump.xml");
                    echo "\n==> Dump accepted...\n\n";
                        break;
                        
                    }else{
                        
                        echo ".";
                    sleep(120);
                    continue;
                    
                    }
                }
                
            }else{
                echo "==> ".$request->resultComment."\n";
                echo "==> Request dont accepted!\n";
                
            }

        }else{
            
            echo "==> Dont start client!\n";
            
        }
        
    }else{
        
        echo "==> Files {$fZapros} and {$fSigned} not exists!\n";
        
    }
    

    if(file_exists('dump.xml')) {
    
    //end XML
    
    }

?>


"Доработка скрипта"
Отправлено Alexadm , 25-Авг-14 11:15 
>> Ну как успехи с выгрузкой реестра запрещённых сайтов??

С выгрузкой всё отлично, давно уже работает.. А принципиально именно php, у меня скрипт на перле, к сожалению в php слабоват..


"Доработка скрипта"
Отправлено Pahanivo , 25-Авг-14 16:41 
>>> Ну как успехи с выгрузкой реестра запрещённых сайтов??
> С выгрузкой всё отлично, давно уже работает.. А принципиально именно php, у
> меня скрипт на перле, к сожалению в php слабоват..

шо, надзор напрягает? ))
есть тоже перловый скрипт если чо ))


"Доработка скрипта"
Отправлено Alexadm , 25-Авг-14 17:07 
>>>> Ну как успехи с выгрузкой реестра запрещённых сайтов??
>> С выгрузкой всё отлично, давно уже работает.. А принципиально именно php, у
>> меня скрипт на перле, к сожалению в php слабоват..
> шо, надзор напрягает? ))
> есть тоже перловый скрипт если чо ))

Я так понял, одни операторы связи кругом))


"Доработка скрипта"
Отправлено Серега , 26-Авг-14 09:42 
>> есть тоже перловый скрипт если чо ))

Ну так если есть показывай! мб взгляну на твой и идеи всплывут а так ковыряю свой phpшный 1 формат как по маслу 2 не могу  получить((


"Доработка скрипта"
Отправлено Серега , 26-Авг-14 10:52 
Неужели никто не написал скрипт на PHP!!!

"Доработка скрипта"
Отправлено Alexadm , 26-Авг-14 11:12 
> Неужели никто не написал скрипт на PHP!!!

Зачем?? Перл или Питон - и больше ничего не надо))


"Доработка скрипта"
Отправлено Серега , 26-Авг-14 11:37 
>> Неужели никто не написал скрипт на PHP!!!
> Зачем?? Перл или Питон - и больше ничего не надо))

Ну покажите тогда либо тот либо тот главное чтоб со 2 форматом работал!


"Доработка скрипта"
Отправлено Alexadm , 26-Авг-14 12:57 
>>> Неужели никто не написал скрипт на PHP!!!
>> Зачем?? Перл или Питон - и больше ничего не надо))
> Ну покажите тогда либо тот либо тот главное чтоб со 2 форматом
> работал!

Держи


#!/usr/bin/perl -w

use strict;
use SOAP::Lite;
use MIME::Base64;
use Sys::Syslog qw(:DEFAULT setlogsock);

my %n;
($n{sec},$n{min},$n{hour},$n{mday},$n{mon},$n{year},$n{wday},$n{yday},$n{isdst}) = localtime(time());
$n{year}+=1900;
$n{mon}++;
$n{mon}=~s/^(\d)$/0$1/;
$n{mday}=~s/^(\d)$/0$1/;
$n{hour}=~s/^(\d)$/0$1/;
$n{min}=~s/^(\d)$/0$1/;
$n{sec}=~s/^(\d)$/0$1/;
my $dt="$n{year}-$n{mon}-$n{mday}T$n{hour}:$n{min}:$n{sec}.000+04:00";
my $mode = $ARGV[0];
my $service = SOAP::Lite->service("http://vigruzki.rkn.gov.ru/services/OperatorRequest?wsdl");

if ($mode eq 0) {
    open LDDTS, "/gost-ssl/rzs/lastdumpdate";
    my @lddts = <LDDTS>;
    close LDDTS;
    my $lddts = $lddts[0];

    my $lddn = $service->getLastDumpDate;

    if ($lddn > $lddts) {
        mylog("got new LastDumpDate version $lddn, try send request");
        open (XMLREQ, ">/gost-ssl/rzs/request.xml");
        print XMLREQ "<?xml version=\"1.0\" encoding=\"windows-1251\"?>\n";
        print XMLREQ "<request>\n\t<requestTime>$dt</requestTime>\n";
        print XMLREQ "\t<operatorName>ООО\"Имя_компании\"</operatorName>\n";
        print XMLREQ "\t<inn>Номер ИНН</inn>\n\t<ogrn>Номер ОГРН</ogrn>\n";
        print XMLREQ "\t<email>собственно мыло</email>\n</request>\n";
        close XMLREQ;

        system ("/gost-ssl/bin/openssl smime -sign -in /gost-ssl/rzs/request.xml -out /gost-ssl/rzs/request.bin".
            " -signer /gost-ssl/rzs/provider.pem -outform DER -nodetach");

        open XMLREQ, "/gost-ssl/rzs/request.xml";
        my $xmlreq = do { local $/ = undef; <XMLREQ>; };
        close XMLREQ;

        open XMLREQSIG, "/gost-ssl/rzs/request.bin";
        my $xmlreqsig = do { local $/ = undef; <XMLREQSIG>; };
        close XMLREQSIG;

        my @sendresult = $service->sendRequest(
            $xmlreq,
            $xmlreqsig
        );
        if ($sendresult[0] eq 'false') {
            mylog("error request $sendresult[1]");
        } elsif ($sendresult[0] eq 'true') {
            open (CODESTRING, ">/gost-ssl/rzs/codestring");
            print CODESTRING $sendresult[2];
            close CODESTRING;
        };
    } else {
        mylog ("LastDumpDate is not update, do not nothing");
    };

    open (LDDN, ">/gost-ssl/rzs/lastdumpdate");
    print LDDN $lddn;
    close LDDN;
} elsif ($mode eq 1) {
    if (-e "/gost-ssl/rzs/codestring") {
        open CODESTRING, "/gost-ssl/rzs/codestring";
        my $codestring = <CODESTRING>;
        close CODESTRING;
#       system ("echo OK");
        my @getresult = $service->getResult($codestring);
        if ($getresult[0] eq 'false') {
                system ("echo OK");
            mylog ("$getresult[1]");
        } elsif ($getresult[0] eq 'true') {
            my $outarch = decode_base64($getresult[1]);
            open (OUT, ">/gost-ssl/rzs/out.zip");
            print OUT $outarch;
            close OUT;
            unlink "/gost-ssl/rzs/codestring";
            if (-e "/gost-ssl/rzs/out.zip") {
                system("/bin/cp /gost-ssl/rzs/out.zip /gost-ssl/rzs/arch/out-$dt.zip");
                system("/usr/bin/unzip -o /gost-ssl/rzs/out.zip -d /gost-ssl/rzs/dump");
                unlink "/gost-ssl/rzs/out.zip";
                system("/gost-ssl/rzs/xml-parser.pl");
                };
        } else { mylog ("getresult in unknown"); };
    } else { mylog ("codestring file not found"); };
        system (q{sed -i "s/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/" /gost-ssl/rzs/dump/url-abuse.txt});
} else { print "put argv '0' or '1'\n" };

sub mylog {
    my $logstring = $_[0];
    setlogsock 'unix';
    openlog ('get-ip-abuse', 'pid', 'user');
    syslog ('warning', $logstring);
    closelog();
};


"Доработка скрипта"
Отправлено Alexadm , 26-Авг-14 12:59 

> sub mylog {
>     my $logstring = $_[0];
>     setlogsock 'unix';
>     openlog ('get-ip-abuse', 'pid', 'user');
>     syslog ('warning', $logstring);
>     closelog();
> };

запускаешь в кроне, имя_скрипта.pl 0 - запрос
имя_скрипта.pl 1 - выгрузка


"Доработка скрипта"
Отправлено серега , 26-Авг-14 20:32 
A какую версию перла надо поставить чтоб попробывать запкстить данный скрипт?


"Доработка скрипта"
Отправлено Pahanivo , 27-Авг-14 08:57 
> A какую версию перла надо поставить чтоб попробывать запкстить данный скрипт?

ставь последнюю - не ошибешься, это ведь не php )))
ну и про модули не забудь, что само собой ...


"Доработка скрипта"
Отправлено Alexadm , 27-Авг-14 11:09 
>> A какую версию перла надо поставить чтоб попробывать запкстить данный скрипт?
> ставь последнюю - не ошибешься, это ведь не php )))
> ну и про модули не забудь, что само собой ...

Согласен))


"Доработка скрипта"
Отправлено U96 , 19-Янв-15 17:43 
>[оверквотинг удален]
>   }else{
>    echo "==> Dont start client!\n";
>   }
>  }else{
>   echo "==> Files {$fZapros} and {$fSigned} not exists!\n";
>  }
>     if(file_exists('dump.xml')) {
>     //end XML
>     }
> ?>

Будет кусок кода выглядеть вот так
$dataRequest = array(
            
                'requestFile'=>file_get_contents($fZapros),
                'signatureFile'=>file_get_contents($fSigned),
                'dumpFormatVersion'=>"2.0"            
            );


где dumpFormatVersion - требуемая версия выгрузки


"Доработка скрипта"
Отправлено Pahanivo , 20-Янв-15 14:47 
>[оверквотинг удален]
> $dataRequest = array(
>            
>     'requestFile'=>file_get_contents($fZapros),
>            
>     'signatureFile'=>file_get_contents($fSigned),
>            
>     'dumpFormatVersion'=>"2.0"
>            
> );
> где dumpFormatVersion - требуемая версия выгрузки

ты чего тут мертвые темы будоражишь )))