Skip to content

Instantly share code, notes, and snippets.

@ben-bradley
Last active August 29, 2015 14:24
Show Gist options
  • Save ben-bradley/8daf273e13022049b097 to your computer and use it in GitHub Desktop.
Save ben-bradley/8daf273e13022049b097 to your computer and use it in GitHub Desktop.
Decode snmpget requests
// This accepts a raw UDP buffer & decodes it into an object
let ber = require('asn1').Ber;
var PduType = {
160: "GetRequest",
161: "GetNextRequest",
162: "GetResponse",
163: "SetRequest",
164: "Trap",
165: "GetBulkRequest",
166: "InformRequest",
167: "TrapV2",
168: "Report"
};
function decodeRequest(buffer) {
let reader = new ber.Reader(buffer);
reader.readSequence();
let req = {};
req.version = reader.readInt();
req.community = reader.readString();
req.type = reader.peek();
req.typeName = PduType[req.type];
reader.readSequence(req.type);
req.id = reader.readInt();
req.errorStatus = reader.readInt();
req.errorIndex = reader.readInt();
reader.readSequence();
reader.readSequence();
req.requestOID = reader.readOID();
req.requestType = reader.readByte();
reader.readByte();
return req;
}
module.exports = decodeRequest;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment