The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Доработка скрипта"
Отправлено 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();
};

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру