2017-09-13 17 views
0

nodejsを持つプリンタのステータスを要求して、nodejsアプリケーションを実行しようとしています。 私は今まで "net-snmp"を使って成功しなかった。nodejs snmpプリンタステータス

問題は、oid(iso.3.6.1.2.1.43.8.2.1.12.1.1)の使用を開始します。

'iso.3.6.1.2.1.43.8.2.1.12.1.1'または '.3.6.1.2.1.43.8.2.1.12.1.1' を使用すると、「エラー:引数が有効なOIDではありません文字列 "です。

「3.6.1.2.1.43.8.2.1.12.1.1」 を使用した場合、「RequestFailedError:NoSuchName:3.6.1.2.1.43.8.2.1.12.1.1」と表示されます。

var snmp = require('net-snmp'); 

var oids = [".3.6.1.2.1.43.8.2.1.12.1.1"]; 

var session = snmp.createSession ("w.x.y.z", "public"); 

session.get (oids, function (error, varbinds) { 
if (error) { 
    console.error (error); 
} else { 
    for (var i = 0; i < varbinds.length; i++) 
     if (snmp.isVarbindError (varbinds[i])) 
      console.error (snmp.varbindError (varbinds[i])) 
     else 
      console.log (varbinds[i].oid + " = " + varbinds[i].value); 
    } 
}); 

のsnmpwalkの出力は以下となります。 snmpgetコマンド-v 2cの-c公共WXYZ iso.3.6.1.2.1.43.8.2.1.12.1.1 iso.3.6.1.2.1.43.8.2.1.12.1.1 = STRING: 「24ミリメートルダイヤ/ 0.94 \」ダイヤ」

は、誰もがこの問題を解決する方法のアイデアを持っています、多分にもこの問題を回避する。 私は、SNMP-ネイティブ使用している場合、私はまねエラーが発生します。

+0

正しいOID 1.3.6.1.2.1.43.8.2.1.12.1.1 –

答えて

0

どうもありがとうギャンビットのサポートを!

"iso"の代わりに "1" 。

var snmp = require('net-snmp'); 
//wrong: var oids = ["iso.3.6.1.2.1.43.8.2.1.12.1.1"]; 

//正しい

するvarのOID = [ "1.3.6.1.2.1.43.8.2.1.12.1.1"]。

var session = snmp.createSession( "w.x.y.z"、 "public");

session.get (oids, function (error, varbinds) { 
if (error) { 
    console.error (error); 
} else { 
    for (var i = 0; i < varbinds.length; i++) 
     if (snmp.isVarbindError (varbinds[i])) 
      console.error (snmp.varbindError (varbinds[i])) 
     else 
      console.log (varbinds[i].oid + " = " + varbinds[i].value); 
    } 
})