问题描述
我正在尝试通过SNMP使两台计算机通信。我正在使用普通的Windows 10笔记本电脑和树莓派4。我正在Node.js和javascript中开发这些代码,并使用“ net-snmp”。我已经启用了两者之间的snmp服务,并编写了一个简单的代码来检查它们是否都起作用。因此,我进一步走了一步,开始在他们两个之间建立一个简单的“问与答”机制,这是树莓的代码,是树莓派和树莓派的代码:
var snmp = require("net-snmp");
var options = {
port: 161,retries: 1,timeout: 10000,backoff: 1.0,transport: "udp4",trapPort: 162,version: snmp.Version1,backwardsGetNexts: true,idBitsSize: 32
};
/* var varbind = {
oid: "1.3.6.1.2.1.1.5.0",type: snmp.ObjectType.OctetString,value: "Ciaoo"
}; */
var session = snmp.createSession("192.168.1.11","public",options);
var oids = ["1.3.6.1.2.1.1.5.0","1.3.6.1.2.1.1.6.0"];
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 );
}
session.close();
});
session.trap(snmp.TrapType.LinkDown,function(error) {
if(error)
console.error(error);
});
这是代理代码:
var snmp = require("net-snmp");
var options = {
port: 161,disableAuthorization: true,engineID: "8000B98380XXXXXXXXXXXX",// where the X's are random hex digits
transport: "udp4"
};
var callback = function (error,data) {
if ( error ) {
console.error (error);
} else {
console.log (JSON.stringify(data,null,2));
}
};
var agent = snmp.createAgent(options,callback,mib);
var myScalarProvider = {
name: "SysName",type: snmp.MibProviderType.Scalar,oid: "1.3.6.1.2.1.1.5.0",scalarType: snmp.ObjectType.OctetString,handler: function(mibRequest){
mibRequest.done();
}
};
var myScalarProvider1 = {
name: "SysLoc",oid: "1.3.6.1.2.1.1.6.0",handler: function(mibRequest){
mibRequest.done();
}
};
var mib = agent.getMib();
mib.registerProvider(myScalarProvider);
mib.registerProvider(myScalarProvider1);
mib.setScalarValue("SysName","Pc di Claudio");
mib.setScalarValue("SysLoc","Cazzi miei");
因此,当我同时运行它们时,我会从代理那里收到连接已发生的通知,但从树莓派那边我会收到以下消息:
NoSuchInstance:1.3.6.1.2.1.1.5.0
NoSuchInstance:1.3.6.1.2.1.1.6.0
这就像我在执行此操作时没有为标量提供程序分配任何值,甚至在创建代理程序时添加了MIB参数。我究竟做错了什么?抱歉,这听起来可能很愚蠢,但我仍在学习过程中。谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)