92 行
2.2 KiB
JavaScript
92 行
2.2 KiB
JavaScript
var snmp = require ("../");
|
|
var getopts = require ("getopts");
|
|
|
|
var options = getopts(process.argv.slice(2), {
|
|
string: ["e"]
|
|
});
|
|
var community;
|
|
var user;
|
|
var session;
|
|
var nonRepeaters;
|
|
var maxRepetitions;
|
|
var oids;
|
|
var varbinds;
|
|
var columns;
|
|
var snmpOptions = {};
|
|
|
|
if ( ! options.v ) {
|
|
options.v = snmp.Version1;
|
|
}
|
|
|
|
snmpOptions.version = snmp.Version[options.v];
|
|
snmpOptions.debug = options.d;
|
|
snmpOptions.transport = options.t;
|
|
if ( snmpOptions.version == snmp.Version3 ) {
|
|
if ( options.e ) {
|
|
snmpOptions.engineID = options.e.toString();
|
|
}
|
|
user = {
|
|
name: options.u,
|
|
level: snmp.SecurityLevel[options.l]
|
|
};
|
|
if ( options.a ) {
|
|
user.authProtocol = snmp.AuthProtocols[options.a.toLowerCase()];
|
|
user.authKey = options.A;
|
|
}
|
|
if ( options.x ) {
|
|
user.privProtocol = snmp.PrivProtocols[options.x.toLowerCase()];
|
|
user.privKey = options.X;
|
|
}
|
|
snmpOptions.context = options.n;
|
|
} else {
|
|
community = options.c;
|
|
}
|
|
|
|
nonRepeaters = options.o;
|
|
maxRepetitions = options.r;
|
|
|
|
if (options._.length < 2) {
|
|
console.log ("usage: " + process.argv[1] + " [<options>] <target> <oid>");
|
|
process.exit (1);
|
|
}
|
|
|
|
var target = options._[0];
|
|
|
|
var command = process.argv[1].split('/').slice(-1)[0];
|
|
if ( command.includes('snmp-set') ) {
|
|
varbinds = [{
|
|
oid: options._[1],
|
|
type: snmp.ObjectType[options._[2]],
|
|
value: options._[3]
|
|
}];
|
|
} else if ( command.includes('snmp-table-columns') ) {
|
|
oids = [options._[1]];
|
|
columns = [];
|
|
for (var i = 1; i < options._.length; i++) {
|
|
columns.push (options._[i]);
|
|
}
|
|
} else {
|
|
oids = [];
|
|
for (var j = 1; j < options._.length; j++) {
|
|
oids.push (options._[j]);
|
|
}
|
|
}
|
|
if ( command.includes('snmp-trap') || command.includes('snmp-inform') || command.includes('snmp-receiver') ) {
|
|
snmpOptions.trapPort = options.p;
|
|
} else {
|
|
snmpOptions.port = options.p;
|
|
}
|
|
|
|
if ( snmpOptions.version == snmp.Version3 ) {
|
|
session = snmp.createV3Session (target, user, snmpOptions);
|
|
} else {
|
|
session = snmp.createSession (target, community, snmpOptions);
|
|
}
|
|
|
|
exports.session = session;
|
|
exports.oids = oids;
|
|
exports.varbinds = varbinds;
|
|
exports.nonRepeaters = nonRepeaters;
|
|
exports.maxRepetitions = maxRepetitions;
|
|
exports.columns = columns;
|