函數(shù)名稱:snmp3_walk()
適用版本:PHP 5 >= 5.4.0, PHP 7
函數(shù)描述:snmp3_walk() 函數(shù)用于通過 SNMP v3 協(xié)議獲取指定設(shè)備的所有子樹 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]])
參數(shù):
- $hostname:設(shè)備的主機(jī)名或 IP 地址。
- $securityName:安全名稱,用于 SNMP 認(rèn)證和加密。
- $securityLevel:安全級別,可以是 "noAuthNoPriv"、"authNoPriv" 或 "authPriv"。
- $authProtocol:認(rèn)證協(xié)議,可以是 "MD5" 或 "SHA"。
- $authPassphrase:認(rèn)證密碼。
- $privProtocol:加密協(xié)議,可以是 "DES" 或 "AES"。
- $privPassphrase:加密密碼。
- $objectID:要獲取的子樹 OID。
返回值:如果成功,返回一個關(guān)聯(lián)數(shù)組,包含指定設(shè)備的所有子樹 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 協(xié)議從設(shè)備的主機(jī)名為 "192.168.0.1" 的設(shè)備中獲取了子樹 OID 為 "1.3.6.1.2.1.1" 的所有值。我們使用了安全級別為 "authPriv",認(rèn)證協(xié)議為 "MD5",認(rèn)證密碼為 "password",加密協(xié)議為 "AES",加密密碼為 "password"。如果成功獲取到數(shù)據(jù),則遍歷結(jié)果并打印每個 OID 的值。如果失敗,則輸出錯誤信息。