(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SNMP::get — 擷取 SNMP 物件
使用 GET 查詢擷取 objectId
中指定的 SNMP 物件。
如果 objectId
是字串,則 SNMP::get() 將會以字串形式返回 SNMP 物件。如果 objectId
是陣列,則所有請求的 SNMP 物件將會以 SNMP 物件 ID 及其值的關聯陣列形式返回。
objectId
SNMP 物件 (OID) 或多個物件
preserveKeys
當 objectId
是陣列且 preserveKeys
設定為 true
時,結果中的鍵值將會與 objectId
中的完全相同,否則將使用 SNMP::oid_output_format 屬性來決定鍵值的格式。
根據 objectId
的類型,以字串或陣列形式返回請求的 SNMP 物件,若發生錯誤則返回 false
。
預設情況下,此方法不會拋出任何例外。要啟用在發生某些程式庫錯誤時拋出 SNMPException 例外,應將 SNMP 類別參數 exceptions_enabled
設定為對應的值。詳情請參閱 SNMP::$exceptions_enabled
的說明。
範例 #1 單一 SNMP 物件
可以透過兩種方式請求單一 SNMP 物件:以字串形式返回字串值,或以包含關聯陣列的單元素陣列形式返回。
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$sysdescr = $session->get("sysDescr.0");
echo "$sysdescr\n";
$sysdescr = $session->get(array("sysDescr.0"));
print_r($sysdescr);
?>
上述範例的輸出結果類似如下:
STRING: Test server Array ( [SNMPv2-MIB::sysDescr.0] => STRING: Test server )
範例 #2 多個 SNMP 物件
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$results = $session->get(array("sysDescr.0", "sysName.0"));
print_r($results);
$session->close();
上述範例的輸出結果類似如下:
Array ( [SNMPv2-MIB::sysDescr.0] => STRING: Test server [SNMPv2-MIB::sysName.0] => STRING: myhost.nodomain )