使用 Net-SNMP API 从 MIB 获取 OID 的类型(语法)

Ser*_*Ser 5 snmp oid net-snmp

如何使用 NET-SNMP API 获取 OID 的语法类型和读/写访问权限?

我正在编写一个使用 SNMP 协议在远程机器上读取和设置值的 SNMP 工具。在设置该值之前,我需要从 MIB 文件中检查其类型和访问权限(是否允许在服务器上写入该值)。

不幸的是,我在 Net-SNMP 文档中找不到有关如何执行此操作的任何提及。

Wes*_*ker 5

大致说来:

  oid名称[128];
  size_t name_length = OID_LENGTH(name);
  严格树*tp;

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

然后查看 net-snmp/library/parse.h 文件中的树结构,你需要的所有好数据都在里面。

另请参阅 apps/snmptranslate.c 文件以获取更多示例。