2

我正在编写一个 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 树:

在此处输入图像描述

4

1 回答 1

0

您的 PHP 库需要能够将您的 OID“解析”为人类可读的 OID 名称。您需要研究您的 PHP SNMP 库是否以及如何为其输出执行此操作。这是您的 PHP SNMP 库的问题。如果您的图书馆不这样做,那么您将需要手动进行。您的 IReasoning 浏览器之所以这样做,是因为 Ireasoning 将 OID 解析为人类可读的名称。

于 2012-08-14T23:12:27.540 回答