函式名稱:snmpwalkoid()
適用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
用法:snmpwalkoid() 函式用於從遠端裝置獲取指定OID的所有子OID的值。它基於SNMP協議並返回一個關聯陣列,其中鍵是OID,值是相應的數值。
語法:array snmpwalkoid(string $hostname, string $community, string $object_id [, int $timeout = 1000000 [, int $retries = 5]])
引數:
- $hostname: 指定遠端裝置的IP地址或主機名。
- $community: 指定SNMP共同體名稱,用於訪問遠端裝置。根據裝置的配置,該值可能為public或私有的。
- $object_id: 指定要獲取子OID的OID。它可以是一個完整的OID或一個部分OID。
- $timeout (可選): 指定超時時間,單位為微秒。預設為1000000微秒(1秒)。
- $retries (可選): 指定重試次數。預設為5次。
返回值:如果成功,則返回一個關聯陣列,其中鍵是子OID,值是相應的資料。如果失敗,則返回FALSE。
示例:
$hostname = '192.168.0.1';
$community = 'public';
$object_id = '1.3.6.1.2.1.1.1'; // 系統描述OID
$result = snmpwalkoid($hostname, $community, $object_id);
if ($result === false) {
echo "獲取資料失敗";
} else {
foreach ($result as $oid => $value) {
echo "OID: $oid, Value: $value\n";
}
}
以上示例將從IP地址為192.168.0.1的裝置中使用public共同體獲取系統描述OID(1.3.6.1.2.1.1.1)的所有子OID和相應的值。如果成功,將遍歷結果陣列並列印每個子OID和對應的值。如果獲取資料失敗,則輸出"獲取資料失敗"。請注意,實際應用中,需要根據遠端裝置的SNMP配置和需求來調整引數和處理返回結果。