2

snmpを使用してデバイスで特定の値を取得および設定できるphpスクリプトを作成しています。デバイスの 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' を使用すると、次の出力が得られます。

Array([AvenueMIBv105::internet.2.1.1.3.0] => INTEGER: 129663870 [AvenueMIBv105::internet.2.1.1.4.0] => Hex-STRING: 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 に答える