Skip to content

Latest commit

 

History

History
38 lines (25 loc) · 1.38 KB

README.md

File metadata and controls

38 lines (25 loc) · 1.38 KB

SmiExtensions

Helper classes to parse a MIB database that can be used with SNMP4J

It provides a way to resolve OID using string instead of numerical notation. It don't try to parse MIB. Instead it expect that to be done by net-snmp and used a tree dump.

To get a full dump if net-snmp is fully configured, one can use the command:

snmptranslate -Tp

Dump for local dump are generated using:

snmptranslate -Tp -m ALL -M .../path_to_mibs_files

And then to use it in SNMP4J:

    OIDFormatter.register()

The formatter can't handle all SNMP's textual convention. So it's up to the user to write custom one. It's done by implementing the abstract class fr.jrds.SmiExtensions.objects.TextualConvention and then adding it in the tree:

MibTree resolver = new MibTree();
OIDFormatter formater = new OIDFormatter(resolver)
formater.addTextualConvention(CustomConvention.class)

It can also be used to split an index as Java object

MibTree resolver = new MibTree();
Object[] parts = parseIndexOID(new OID("1.3.6.1.6.3.16.1.4.1.4.7.118.51.103.114.111.117.112.0.3.1"))
Arrays.stream(parts).forEach( i-> System.out.println("'" + i + "' " + i.getClass()));

Will output

'vacmAccessContextMatch' class org.snmp4j.smi.OctetString
'v3group' class java.lang.String
'' class java.lang.String
'3' class java.lang.Integer
'noAuthNoPriv(1)' class java.lang.String