函数名称:SNMP::walk()
适用版本:PHP 4 >= 4.3.3, PHP 5, PHP 7
函数描述:SNMP::walk() 函数用于返回指定的 SNMP 对象的所有子树。
用法:
SNMP::walk ( mixed $object_id [, mixed $suffix_as_key = FALSE [, mixed $max_repetitions = 0 [, mixed $non_repeaters = 0 ]]] ) : array|false
参数:
- $object_id: 必需,指定要访问的 SNMP 对象的标识符。可以是一个字符串或一个数字,例如:".1.3.6.1.2.1.1"。
- $suffix_as_key: 可选,如果设置为 TRUE,则返回的数组将使用 OID 的后缀作为键名。默认为 FALSE。
- $max_repetitions: 可选,指定在一个 GETBULK 请求中返回的最大重复次数。默认为 0,表示使用 GETNEXT 请求。
- $non_repeaters: 可选,指定在 GETBULK 请求中不重复的 OID 数量。默认为 0。
返回值:
- 成功时返回一个关联数组,其中包含指定 SNMP 对象的所有子树。数组的键是 OID,值是对应的数据。
- 失败时返回 FALSE。
示例:
$session = new SNMP(SNMP::VERSION_2c, 'localhost', 'public');
if ($session->walk('.1.3.6.1.2.1.1') === FALSE) {
echo "无法获取 SNMP 对象的子树。";
} else {
$result = $session->walk('.1.3.6.1.2.1.1');
foreach ($result as $oid => $value) {
echo "OID: " . $oid . ",值: " . $value . "<br>";
}
}
以上示例创建了一个 SNMP 会话,使用 SNMP::walk() 函数获取指定 SNMP 对象的所有子树。如果成功,则遍历返回的结果数组,并输出每个 OID 和对应的值。如果失败,则显示错误消息。
请注意,示例中的 'localhost' 和 'public' 是 SNMP 代理的主机名和共同体字符串,你需要根据你的实际情况进行替换。另外,你还可以根据需要修改要访问的 SNMP 对象的标识符。