????? ??' 6
?????? ????? ??? ?????? ????? ??????? ??? ????? Áú»¢¶Ä²©. ???? ????? ?? ???? ??????, ?? ??? ????? ?? ??, ?? ??? ????? ????? ?? ??.
????????? ??????? ?? Áú»¢¶Ä²© ?? ????? ???? ???? ?? 1GB ??? ?????. ????? ?? 1GB ???? ?? ?? ???? ????? ?????? ??????? ??? ?? ???? ??????? ??? ??????.
??? ????? ????? ?-Proxy Áú»¢¶Ä²©, ????? ???? ?????? ???? ?-4GB ??? ????? ?????? ?????? ??????. ???? ???? ??????? ???? ?????? ???? ?? 4GB, ??? Áú»¢¶Ä²© ????? ??????? ????? ?????? ?????? ??????? ??????? (??? 0x04) ?????? ?? ????? ???? ?????? ?-16GB.
??? ?? ????? ????? ?????? ?????? ???? ???? ?????? ?? ??????, ???? ?? ?????? Áú»¢¶Ä²© ??????? ?????? ???? ??????? ?? ???? ?????? ???? ?? 1GB.
?????? ?????? ?????? ????. ?? ??????? ?????? ??????? ?- little-endian.
??? | ???? | ???? (????? ?????) |
????? |
---|---|---|---|
<PROTOCOL> |
4 | 4 | "ZBXD" ?? 5A 42 58 44 |
<FLAGS> |
1 | 1 | ????? ?? ????????:0x01 - ???????? ?????? Áú»¢¶Ä²©0x02 - ?????0x04 - ????? ????? |
<DATALEN> |
4 | 8 | ???? ??????. |
<RESERVED> |
4 | 8 | ???? ???? ????? ?????? (??? 0x02 ) - ???? ??????? ??? ?????????? ?? ???? ????? ?????? - 00 00 00 00 |
??? ??? ???? ??? ?????? ???? ?????? ?? ????? ???????? Áú»¢¶Ä²© ??????? ??????? ????? ??? ???? ??? ????? ?? ?????? ???? ????? ?-Zabix ??? ?????? ????. ???? ???? ???? ???? ???????? ???? ?????? ?-1GB, ???? ?? ???? ????? ?????? ??????? ???????.
packet = b"ZBXD\1" + struct.pack("<II", len(data), 0) + ??????
???
def zbx_create_header(plain_data_size, compressed_data_size=???):
???????? = b"ZBXD"
????? = 0x01
?? compressed_data_size ??? None:
datalen = plain_data_size
???? = 0
?????:
????? |= 0x02
datalen = compressed_data_size
???? = plain_data_size
return protocol + struct.pack("<BII", flags, datalen, ????)
packet = zbx_create_header(len(data)) + ??????
$packet ??? = "ZBXD\1" . pack("(II)<", length($data), 0) . $data;
???
sub zbx_create_header($;$)
{
my $plain_data_size = shift;
my $compressed_data_size = shift;
my $protocol = "ZBXD";
$flags ??? = 0x01;
$?????? ???;
$????? ???;
if (!defined($compressed_data_size))
{
$datalen = $plain_data_size;
$reserved = 0;
}
?????
{
$flags |= 0x02;
$datalen = $compressed_data_size;
$reserved = $plain_data_size;
}
???? $???????? . chr($flags) . pack("(II)<", $datalen, $reserved);
}
my $packet = zbx_create_header(length($data)) . $data;
`php $packet = "ZBXD\1" . pack("VV", strlen($data), 0) . $data;
???
`` `php
function zbx_create_header($plain_data_size, $compressed_data_size = null)
{
$protocol = "ZBXD";
$flags = 0x01;
if (is_null($compressed_data_size))
{
$datalen = $plain_data_size;
$reserved = 0;
}
?????
{
$flags |= 0x02;
$datalen = $compressed_data_size;
$reserved = $plain_data_size;
}
???? $???????? . chr($flags) . pack("VV", $datalen, $reserved);
}
$packet = zbx_create_header(strlen($data)) . $data;
datalen=$(printf "%08x" ${#data})
datalen="\\x${datalen:6:2}\\x${datalen:4:2}\\x${datalen:2:2}\\x${datalen:0:2}"
printf "ZBXD\1${datalen}\0\0\0\0%s" "$data"