函数名称:snmp3_walk()
适用版本:PHP 5 >= 5.4.0, PHP 7
函数描述:snmp3_walk() 函数用于通过 SNMP v3 协议获取指定设备的所有子树 OID 的值。
语法:snmp3_walk(string $hostname, string $securityName, string $securityLevel, string $authProtocol, string $authPassphrase, string $privProtocol, string $privPassphrase, string $objectId [, int $timeout = 1000000 [, int $retries = 5]])
参数:
- $hostname:设备的主机名或 IP 地址。
- $securityName:安全名称,用于 SNMP 认证和加密。
- $securityLevel:安全级别,可以是 "noAuthNoPriv"、"authNoPriv" 或 "authPriv"。
- $authProtocol:认证协议,可以是 "MD5" 或 "SHA"。
- $authPassphrase:认证密码。
- $privProtocol:加密协议,可以是 "DES" 或 "AES"。
- $privPassphrase:加密密码。
- $objectID:要获取的子树 OID。
返回值:如果成功,返回一个关联数组,包含指定设备的所有子树 OID 的值。如果失败,返回 false。
示例:
$hostname = "192.168.0.1";
$securityName = "admin";
$securityLevel = "authPriv";
$authProtocol = "MD5";
$authPassphrase = "password";
$privProtocol = "AES";
$privPassphrase = "password";
$objectID = "1.3.6.1.2.1.1";
$result = snmp3_walk($hostname, $securityName, $securityLevel, $authProtocol, $authPassphrase, $privProtocol, $privPassphrase, $objectID);
if ($result !== false) {
foreach ($result as $oid => $value) {
echo "OID: " . $oid . ", Value: " . $value . "\n";
}
} else {
echo "Failed to retrieve SNMP data.";
}
上述示例中,我们通过 SNMP v3 协议从设备的主机名为 "192.168.0.1" 的设备中获取了子树 OID 为 "1.3.6.1.2.1.1" 的所有值。我们使用了安全级别为 "authPriv",认证协议为 "MD5",认证密码为 "password",加密协议为 "AES",加密密码为 "password"。如果成功获取到数据,则遍历结果并打印每个 OID 的值。如果失败,则输出错误信息。