使用 Net-SNMP API 从 MIB 获取 OID 类型(语法)
如何使用 NET-SNMP API 获取 OID 的语法类型和读/写访问权限?
我正在编写一个 SNMP 工具,它使用 SNMP 协议读取和设置远程计算机上的值。在设置该值之前,我需要从 MIB 文件中检查其类型和访问权限(是否允许在服务器上写入该值)。
不幸的是,我在 Net-SNMP 文档中找不到有关如何执行此操作的任何提及。
How can I get the syntax type and read/write access for an OID using NET-SNMP API?
I am writing an SNMP tool that reads and sets values on a remote machine using SNMP protocol. Before setting the value, I need to check its type and access permissions (whether it is allowed to write this value on the server or not) from the MIB file.
Unfortunately, I could not find any mention regarding how to do this in the Net-SNMP documentation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
粗略地说:
然后查看 net-snmp/library/parse.h 文件中的树结构,您需要的所有好数据都在里面。
另请参阅 apps/snmptranslate.c 文件以获取更多示例。
Roughly speaking:
Then look through the net-snmp/library/parse.h file for the tree structure and all the good data you need is inside it.
Also see the apps/snmptranslate.c file for further examples.
韦斯所说的可能应该适合您想要做的事情。或者,在您的实现中,要显式检查设置值的输入类型,请使用 netsnmp_check_vb_type()。为了检查权限,如果您尝试修改没有写访问权限(如相关 MIB 中定义)的字段,net-snmp 将引发 notWritable 错误。
What Wes said should probably work for what you're trying to do. Alternatively, in your implementation, to check the input type of the set value explicitly, use netsnmp_check_vb_type(). For checking permissions, net-snmp will throw a notWritable error if you try to modify a field without write access (as defined in the relevant MIB).