我正在编写一个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] =&gt; INTEGER:1 [AvenueMIBv105 :: private.1.19021.1.1.0.0.1.2.0] =&gt; INTEGER:1 < / p>
使用$ oid ='AvenueMIBv105 :: private.slotSelect'我得到此输出:
数组([AvenueMIBv105 :: internet.2.1.1.3.0] =&gt; INTEGER:129663870 [AvenueMIBv105 :: internet.2.1.1.4.0] =&gt; Hex-STRING:75 73 65 72 4E 61 6D 65 00
我希望两个输出都一样。我意识到我必须有'人类可读'的错误,但我已经尝试了大量不同的字符串,我总是得到相同的错误输出。我该怎么做?另外我知道它有时会有所不同,php脚本在WAMP服务器上运行。
这是我的MIB树:
答案 0 :(得分:0)
您的PHP库需要能够将您的OID“解析”为人类可读的OID名称。您需要研究PHP SNMP库是否以及如何为其输出执行此操作。这是PHP SNMP库的问题。如果您的库不这样做,那么您将需要手动执行此操作。您的IReasoning浏览器之所以这样做,是因为Ireasoning将OID解析为人类可读的名称。