函式名稱: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 物件的識別符號。