2017-09-13 95 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); 
    } 
})