获取OID';使用Net SNMP API从MIB中键入(语法)

获取OID';使用Net SNMP API从MIB中键入(语法),snmp,net-snmp,oid,Snmp,Net Snmp,Oid,如何使用NET-SNMP API获取OID的语法类型和读/写访问权限 我正在编写一个SNMP工具,它使用SNMP协议在远程机器上读取和设置值。在设置该值之前,我需要从MIB文件检查其类型和访问权限(是否允许在服务器上写入该值) 不幸的是,我在NetSNMP文档中找不到任何关于如何做到这一点的说明 大致来说: oid name[128]; size_t name_length = OID_LENGTH(name); strict tree *tp; read_objid("sysCo

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

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

不幸的是,我在NetSNMP文档中找不到任何关于如何做到这一点的说明

大致来说:

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(); oid名称[128]; 大小\u t名称\u长度=OID\u长度(名称); 严格树*tp; 读取对象(“sysContact.0”,&name,&name\u长度); tp=get_tree(name,name_length,get_tree_head(); 然后查看netsnmp/library/parse.h文件中的树结构,您需要的所有好数据都在其中


有关更多示例,请参见apps/snmptranslate.c文件。

Wes所说的可能适用于您尝试执行的操作。或者,在您的实现中,要显式检查设置值的输入类型,请使用netsnmp\u check\u vb\u type()。对于检查权限,如果您尝试在没有写访问权限的情况下修改字段(如相关MIB中所定义),则net snmp将引发不可写错误