5

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

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

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

4

2 回答 2

5

大致说来:

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

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

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

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

于 2011-01-25T00:49:12.200 回答
0

韦斯所说的应该对你想做的事情有用。或者,在您的实现中,要明确检查设置值的输入类型,请使用 netsnmp_check_vb_type()。为了检查权限,如果您尝试修改没有写入权限的字段(如相关 MIB 中所定义),net-snmp 将抛出 notWritable 错误。

于 2011-01-25T20:03:22.937 回答