函数名称:snmpwalk()
适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
函数描述:snmpwalk() 函数用于获取指定 SNMP 主机上的一组对象的值。
语法:snmpwalk(string $hostname, string $community, string $object_id, int $timeout = 1000000, int $retries = 5) : array|false
参数:
- $hostname: SNMP 主机名或 IP 地址。
- $community: SNMP 社区字符串,用于访问 SNMP 主机。
- $object_id: SNMP 对象标识符(OID),用于指定要获取的对象。
- $timeout: 可选参数,超时时间(以微秒为单位)。默认为 1000000 微秒(1秒)。
- $retries: 可选参数,重试次数。默认为 5 次。
返回值:
- 成功:返回一个包含所获取对象的数组。
- 失败:返回 false。
示例:
$hostname = '127.0.0.1';
$community = 'public';
$object_id = '1.3.6.1.2.1.2.2.1.2'; // OID for ifDescr
$result = snmpwalk($hostname, $community, $object_id);
if ($result === false) {
echo "获取 SNMP 对象失败";
} else {
foreach ($result as $key => $value) {
echo "接口名称: $value\n";
}
}
该示例中,我们使用 snmpwalk() 函数获取本地主机的接口名称。首先,我们指定了 SNMP 主机名为 '127.0.0.1',社区字符串为 'public',对象标识符为 '1.3.6.1.2.1.2.2.1.2'。然后,我们通过遍历结果数组打印出每个接口的名称。
请注意,snmpwalk() 函数需要在 PHP 的配置文件 php.ini 中启用 SNMP 扩展(extension=snmp)才能正常使用。