【问题标题】:nodejs snmp printer statusnodejs snmp 打印机状态
【发布时间】:2017-09-13 07:41:06
【问题描述】:

我正在尝试运行 nodejs 应用程序,使用 nodejs 请求打印机的状态。 到目前为止,我尝试使用“net-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 public w.x.y.z 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 = 字符串:“24mm 直径/0.94\”直径“

有没有人知道如何解决这个问题,也许也是一种解决方法。 如果我使用 snmp-native,我会得到类似的错误。

【问题讨论】:

  • 使用正确的 OID 1.3.6.1.2.1.43.8.2.1.12.1.1

标签: node.js snmp


【解决方案1】:

非常感谢 Gambit 支持!

只需输入“1”而不是“iso”。

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

//正确

var oids = ["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);
  }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多