2024年PHP日本会议

snmpwalkoid

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpwalkoid查询网络实体信息的树状结构

描述

snmpwalkoid(
    字符串 $hostname,
    字符串 $community,
    数组|字符串 $object_id,
    整数 $timeout = -1,
    整数 $retries = -1
): 数组|false

snmpwalkoid() 函数用于读取由 hostname 指定的 SNMP 代理中的所有对象 ID 及其相应的值。

snmpwalkoid()snmpwalk() 的存在有历史原因。这两个函数是为了向后兼容而提供的。请改用 snmprealwalk()

参数

hostname

SNMP 代理。

community

读取社区。

object_id

如果为 null,则 object_id 被视为 SNMP 对象树的根,并且该树下所有对象都作为数组返回。

如果指定了 object_id,则返回该 object_id 下的所有 SNMP 对象。

timeout

第一次超时之前的微秒数。

retries

如果发生超时,重试的次数。

返回值

返回一个关联数组,其中包含从 object_id 作为根开始的对象 ID 及其相应的值,或者在出错时返回 false

范例

示例 #1 snmpwalkoid() 示例

<?php
$a
= snmpwalkoid("127.0.0.1", "public", "");
for (
reset($a); $i = key($a); next($a)) {
echo
"$i: $a[$i]<br />\n";
}
?>

上述函数调用将返回在本地主机上运行的 SNMP 代理中的所有 SNMP 对象。可以使用循环遍历这些值。

参见

  • snmpwalk() - 从代理中获取所有 SNMP 对象

添加备注

用户贡献的注释 4 个注释

匿名用户
10 年前
确保在 Debian 中安装“snmp-mibs-downloader”。

apt-get install snmp-mibs-downloader

您可能还需要编辑您的 /etc/apt/sources.list

deb http://ftp.us.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.us.debian.org/debian/ wheezy main contrib non-free
thammer at rtccom dot com
19 年前
上面的注释提到 MAC 地址被转换为整数或类似的东西。不知道为什么会发生这种情况,但我用一个包装函数解决了这个问题。

function PadMAC($mac) {
$mac_arr = explode(':',$mac);
foreach($mac_arr as $atom) {
$atom = trim($atom);
$newarr[] = sprintf("%02s",$atom);
}
$newmac = implode(':',$newarr);
return $newmac;
}

也许这可以帮助遇到这个问题的人。我知道我个人非常依赖这些用户贡献的注释。
gene_wood at example dot com
20 年前
看起来超时是微秒。
1,000,000 微秒 = 1 秒
jasper at pointless dot net
23 年前
注意:snmpwalkoid 可能丢失数据 - 例如,“rmon.matrix.matrixSDTable”表使用二进制 MAC 地址作为索引的一部分,这些地址被转换为 ASCII,当它们到达 PHP 时,它们可能不唯一 - 因此表中的一些条目会丢失……
To Top