2011-01-24 345 views
3

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

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

不幸的是,我找不到任何关于如何在Net-SNMP文档中这样做的提及。

回答

2

粗略地说:

 
    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 /库/ parse.h中的文件和所有你需要的良好的数据里面。

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

0

什么Wes说应该可以为你想要做的。或者,在您的实现中,要明确检查设置值的输入类型,请使用netsnmp_check_vb_type()。为了检查权限,如果尝试修改没有写入权限的字段(如相关MIB中定义的),则net-snmp将引发不可写错误。