>>> Неужели никто не написал скрипт на 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();
};