65 rader
1.9 KiB
JavaScript
65 rader
1.9 KiB
JavaScript
var snmp = require ("../");
|
|
var getopts = require ("getopts");
|
|
|
|
var options = getopts(process.argv.slice(2));
|
|
var verbose = options.v;
|
|
var snmpOptions = {
|
|
disableAuthorization: options.n,
|
|
port: options.p,
|
|
transport: options.t,
|
|
engineID: options.e,
|
|
includeAuthentication: options.a
|
|
};
|
|
|
|
var cb = function(error, trap) {
|
|
var now = new Date().toLocaleString();
|
|
var trapType;
|
|
if (error) {
|
|
console.log(now + ": " + error.message);
|
|
} else {
|
|
trapType = snmp.PduType[trap.pdu.type] || "Unknown";
|
|
if ( verbose ) {
|
|
console.log (now + ": " + trapType + " received:");
|
|
console.log (JSON.stringify(trap, null, 2));
|
|
} else {
|
|
if (trap.pdu.type == snmp.PduType.Trap ) {
|
|
console.log (now + ": " + trapType + ": " + trap.rinfo.address + " : " + trap.pdu.enterprise);
|
|
} else {
|
|
for (var i = 0; i < trap.pdu.varbinds.length; i++) {
|
|
console.log (now + ": " + trapType + ": " + trap.rinfo.address + " : " + trap.pdu.varbinds[i].oid + " -> " + trap.pdu.varbinds[i].value);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
var receiver = snmp.createReceiver(snmpOptions, cb);
|
|
var authorizer = receiver.getAuthorizer ();
|
|
authorizer.addCommunity ("public");
|
|
authorizer.addUser ({
|
|
name: "fred",
|
|
level: snmp.SecurityLevel.noAuthNoPriv
|
|
});
|
|
authorizer.addUser ({
|
|
name: "betty",
|
|
level: snmp.SecurityLevel.authNoPriv,
|
|
authProtocol: snmp.AuthProtocols.sha,
|
|
authKey: "illhavesomeauth"
|
|
});
|
|
authorizer.addUser ({
|
|
name: "wilma",
|
|
level: snmp.SecurityLevel.authPriv,
|
|
authProtocol: snmp.AuthProtocols.sha,
|
|
authKey: "illhavesomeauth",
|
|
privProtocol: snmp.PrivProtocols.des,
|
|
privKey: "andsomepriv"
|
|
});
|
|
authorizer.addUser ({
|
|
name: "barney",
|
|
level: snmp.SecurityLevel.authPriv,
|
|
authProtocol: snmp.AuthProtocols.sha,
|
|
authKey: "illhavesomeauth",
|
|
privProtocol: snmp.PrivProtocols.aes,
|
|
privKey: "andsomepriv"
|
|
});
|