如何使用NET-SNMP API获取OID的语法类型和读/写访问权限?
我正在编写一个SNMP工具,使用SNMP协议读取和设置远程计算机上的值。在设置值之前,我需要从MIB文件中检查其类型和访问权限(是否允许在服务器上写入此值)。
不幸的是,我在Net-SNMP文档中找不到有关如何执行此操作的任何内容。
答案 0 :(得分:4)
粗略地说:
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();
然后查看net-snmp / library / parse.h文件中的树结构,你需要的所有好数据都在其中。
另请参阅apps / snmptranslate.c文件以获取更多示例。
答案 1 :(得分:0)
Wes所说的应该可能适用于你想要做的事情。或者,在您的实现中,要显式检查设置值的输入类型,请使用netsnmp_check_vb_type()。为了检查权限,如果您尝试修改没有写访问权限的字段(如相关MIB中所定义),net-snmp将抛出一个notWritable错误。