函数名称: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配置和需求来调整参数和处理返回结果。