2017-09-13 129 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 \」直徑」

有沒有人有一個想法如何解決這個問題,也許也是一種解決方法。 我得到simular錯誤,如果我使用SNMP本機。

+0

使用正確的OID 1.3.6.1.2.1.43.8.2.1.12.1.1 –

回答

0

非常感謝開局支持!

只需將「1」而不是「iso」 。

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

//正確

變種的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); 
    } 
})