我正在编写一个 php 脚本,它允许我使用 snmp 在设备上获取和设置某些值。我有设备的 MIB 并且可以轻松地将其加载到 php 中。问题是我无法使用“人类可读”的 oid 字符串而不是数字字符串来获取我正在寻找的值(数字 oid 可以正常工作)。
我的代码:
$host = "localhost";
$community = "public";
$mibFile = "C:\wamp\www\extra\AvenueMIBv105.mib";
$oid = '.1.3.6.1.4.1.19021.1.1.0.0.1';
snmp_read_mib($mibFile);
print_r(snmprealwalk($host, $community, $oid));
,$oid = '.1.3.6.1.4.1.19021.1.1.0.0.1'
我得到这个输出:
数组([AvenueMIBv105::private.1.19021.1.1.0.0.1.1.0] => 整数:1 [AvenueMIBv105::private.1.19021.1.1.0.0.1.2.0] => 整数:1
使用 $oid = 'AvenueMIBv105::private.slotSelect' 我得到以下输出:
数组([AvenueMIBv105::internet.2.1.1.3.0] => 整数:129663870 [AvenueMIBv105::internet.2.1.1.4.0] => 十六进制字符串:75 73 65 72 4E 61 6D 65 00
我希望两个输出相同。我意识到我必须有“人类可读”的 oid 错误,但我为此尝试了许多不同的字符串,但我总是得到相同的错误输出。我应该怎么做?我也知道它有时会有所不同,php 脚本在 WAMP 服务器上运行。
这是我的 MIB 树: