Get OID's type (syntax) from MIB using Net-SNMP API
Asked Answered
L

2

5

How can I get the syntax type and read/write access for an OID using NET-SNMP API?

I am writing an SNMP tool that reads and sets values on a remote machine using SNMP protocol. Before setting the value, I need to check its type and access permissions (whether it is allowed to write this value on the server or not) from the MIB file.

Unfortunately, I could not find any mention regarding how to do this in the Net-SNMP documentation.

Leyba answered 24/1, 2011 at 20:15 Comment(0)
D
5

Roughly speaking:

  oid name[128];
  size_t name_length = OID_LENGTH(name);
  strict tree *tp;

  read_objid("sysContact.0", &name, &name_length);
  tp = get_tree(name, name_length, get_tree_head();
  

Then look through the net-snmp/library/parse.h file for the tree structure and all the good data you need is inside it.

Also see the apps/snmptranslate.c file for further examples.

Delphinus answered 25/1, 2011 at 0:49 Comment(0)
D
0

What Wes said should probably work for what you're trying to do. Alternatively, in your implementation, to check the input type of the set value explicitly, use netsnmp_check_vb_type(). For checking permissions, net-snmp will throw a notWritable error if you try to modify a field without write access (as defined in the relevant MIB).

Distraction answered 25/1, 2011 at 20:3 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.