"type" 参数必须是以下之一,具体取决于要设置的 SNMP 主机上变量的类型
i 整数
u 无符号整数
t TIMETICKS
a IP 地址
o OBJID
s 字符串
x 十六进制字符串
d 十进制字符串
如果在编译 SNMP 库时定义了 OPAQUE_SPECIAL_TYPES,则以下内容也有效
U 无符号 int64
I 带符号 int64
F 浮点数
D 双精度浮点数
(PHP >= 5.2.0, PHP 7, PHP 8)
snmp2_set — 设置 SNMP 对象的值
$hostname
,$community
,$object_id
,$type
,$value
,$timeout
= -1,$retries
= -1
snmp2_set() 用于设置由 object_id
指定的 SNMP 对象的值。
hostname
SNMP 代理(服务器)的主机名。
community
写入社区。
object_id
SNMP 对象 ID。
type
MIB 定义了每个对象 ID 的类型。它必须作为以下列表中的单个字符指定。
= | 类型取自 MIB |
i | 整数 |
u | 整数 |
s | 字符串 |
x | 十六进制字符串 |
d | 十进制字符串 |
n | NULLOBJ |
o | OBJID |
t | TIMETICKS |
a | IP 地址 |
b | 位 |
如果在编译 SNMP 库时定义了 OPAQUE_SPECIAL_TYPES
,则以下内容也有效
U | 无符号 int64 |
I | 带符号 int64 |
F | 浮点数 |
D | 双精度浮点数 |
这些中的大多数将使用明显的相应 ASN.1 类型。's'、'x'、'd' 和 'b' 都是指定 OCTET STRING 值的不同方式,而 'u' 无符号类型也用于处理 Gauge32 值。
如果 MIB 文件通过 "snmp_read_mib" 加载到 MIB 树中,或者通过在 libsnmp 配置文件中指定,则可以将 '=' 用作 type
参数,因为类型可以从 MIB 中自动读取。
请注意,有两种方法可以设置类型为 BITS 的变量,例如 "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}"
有关更多详细信息,请参见示例部分。
value
新值。
timeout
第一次超时之前的微秒数。
retries
如果发生超时,重试的次数。
如果 SNMP 主机拒绝数据类型,则会显示类似于 "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." 的 E_WARNING 消息。如果指定了未知或无效的 OID,则警告可能显示为 "Could not add variable"。
示例 #1 使用 snmp2_set()
<?php
snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>
示例 #2 使用 snmp2_set() 设置 BITS SNMP 对象 ID
<?php
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// 或者
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>
"type" 参数必须是以下之一,具体取决于要设置的 SNMP 主机上变量的类型
i 整数
u 无符号整数
t TIMETICKS
a IP 地址
o OBJID
s 字符串
x 十六进制字符串
d 十进制字符串
如果在编译 SNMP 库时定义了 OPAQUE_SPECIAL_TYPES,则以下内容也有效
U 无符号 int64
I 带符号 int64
F 浮点数
D 双精度浮点数