PHP Conference Japan 2024

snmp3_set

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_set设置SNMP对象的value

描述

snmp3_set(
    string $hostname,
    string $security_name,
    string $security_level,
    string $auth_protocol,
    string $auth_passphrase,
    string $privacy_protocol,
    string $privacy_passphrase,
    array|string $object_id,
    array|string $type,
    array|string $value,
    int $timeout = -1,
    int $retries = -1
): bool

snmp3_set() 用于设置由 object_id 指定的 SNMP 对象的值。

即使安全级别不使用身份验证或隐私协议/密码,也必须指定有效值。

参数

hostname

SNMP代理(服务器)的主机名。

security_name

安全名称,通常是某种用户名

security_level

安全级别 (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

身份验证协议 (MD5 或 SHA)

auth_passphrase

身份验证密码短语

privacy_protocol

隐私协议 (DES 或 AES)

privacy_passphrase

隐私密码短语

object_id

SNMP 对象ID。

type

MIB 定义每个对象ID的类型。它必须从下面的列表中指定为单个字符。

类型
=类型取自MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

如果在编译 SNMP 库时定义了 **OPAQUE_SPECIAL_TYPES**,则以下内容也有效

类型
U无符号int64
I有符号int64
Ffloat
Ddouble

大多数这些将使用明显的对应ASN.1类型。“s”、“x”、“d”和“b”都是指定OCTET STRING值的不同方式,“u”无符号类型也用于处理Gauge32值。

如果MIB文件通过“snmp_read_mib”加载到MIB树中,或者在libsnmp配置中指定了MIB文件,则可以将“=”用作type参数,因为此时可以从MIB中自动读取类型。

请注意,有两种方法可以设置BITS类型的变量,例如“SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}”

  • 使用类型“b”和位号列表。此方法不推荐,因为对相同OID的GET查询将返回例如0xF8。
  • 使用类型“x”和十六进制数,但不带(!)通常的“0x”前缀。

有关更多详细信息,请参阅示例部分。

value

新值

timeout

第一次超时之前的微秒数。

retries

如果发生超时,重试的次数。

返回值

成功时返回 true,失败时返回 false

如果SNMP主机拒绝数据类型,则会显示类似“警告:数据包错误。原因:(badValue)给定的值类型或长度错误。”的E_WARNING消息。如果指定了未知或无效的OID,则警告可能显示“无法添加变量”。

示例

示例 #1 使用 snmp3_set()

<?php
snmp3_set
('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

示例 #2 使用 snmp3_set() 设置 BITS SNMP 对象ID

<?php
snmp3_set
('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// 或
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>
添加注释

用户贡献注释

此页面没有用户贡献的注释。
To Top