2012-08-10 237 views
2

我正在写一个php脚本,它允许我使用snmp在设备上获取和设置某些值。我有设备的MIB,并可以轻松地将它加载到PHP中。问题是我无法使用'人类可读'oid字符串而不是数字字符串(数字oid工作正常)来获取我正在查找的值。php snmp MIB和walk

我的代码:

$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] => INTEGER: 1 [AvenueMIBv105 :: private.1.19021.1.1.0.0.1.2.0] => INTEGER:1

与$ OID = 'AvenueMIBv105 :: private.slotSelect' 我得到这样的输出:

阵列([AvenueMIBv105 :: internet.2.1.1.3.0] => INTEGER:129663870 [AvenueMIBv105 :: internet.2.1.1.4.0] =>六角STRING:75 73 65 72 4E 61 6D 65 00

我希望两个输出都一样。我意识到我必须有'人类可读的'oid错误,但我已经尝试了大量不同的字符串,并且我总是得到相同的错误输出。我应该怎么做?另外我知道它有时会有所作为,php脚本运行在WAMP服务器上。

这里是我的MIB树:

enter image description here

回答

0

你的PHP库需要能够“解决”您的OID到人类可读的OID名。您需要研究您的PHP SNMP库是否以及如何为其输出执行此操作。这是您的PHP SNMP库的一个问题。如果你的图书馆没有这样做,那么你将需要手动做到这一点。你的IReasoning浏览器做它的原因是因为Ireasoning将OID解析为人类可读的名字。