当处理1个snmp数据包中的多个变量绑定时,tshark无法正确解析它,以便可以确定OID-to-value。因此,我必须按值类型查询数据包并使用结果来确定哪个OID设置为什么。为此,我需要事先知道每个OID的值类型。
有没有办法查询OID(即使没有创建实例)并让它返回类型(如Integer32,Gauge32,OctetString等)?
我也尝试过使用snmpwalk,但只在已设置OID实例时才返回该值。如果未设置,则返回“此OID当前不存在此类实例”
MIB必须已经知道它期望的类型,因为如果你尝试将它设置为错误的类型,你会收到错误...我只是想弄清楚如何访问这些信息
谢谢!
答案 0 :(得分:0)
不,除了已经实例化的变量之外,没有办法查询正在运行的SNMP代理。
如果您需要知道变量将具有哪种类型,请在MIB文档中为您提供帮助。它为每个标量变量和每个表列指定了适当的类型。 当它收到对变量的查询时,代理必须提供MIB中指定的类型的值。如果它返回不同的类型,那就是代理中的错误。
您应该能够从要查询的SNMP代理的供应商处获取MIB文档。它通常作为系统管理员指南或类似工具的一部分发布,或者您可能需要从其客户支持部门请求。