使用 pysnmp 确定 OID 值类型

Use pysnmp to determine OID value type

在处理 1 个 snmp 数据包中的多个变量绑定时,tshark 无法正确解析它,从而无法确定 OID-to-value。因此,我必须按值类型查询数据包并使用结果来确定哪个 OID 被设置为什么。为此,我需要事先知道每个 OID 的值类型。

有没有办法查询 OID(即使未创建实例)并使其 return 类型(例如 Integer32、Gauge32、OctetString 等)?

我也尝试过使用 snmpwalk,但只有 return 设置了 OID 实例时的值。如果没有设置它 returns "no such instance currently exists at this OID"

MIB 必须已经知道它期望的类型,因为如果您尝试将其设置为错误的类型,则会出现错误...我只是想弄清楚如何访问此信息

谢谢!

不,除了已实例化的变量之外,无法查询 运行 SNMP 代理。

如果您需要知道变量的类型,MIB 文档中有帮助。它为每个标量变量和每个 table 列指定适当的类型。 当它收到对变量的查询时,代理有义务提供 MIB 中指定类型的值。如果它 returns 是不同的类型,那是代理中的错误。

您应该能够从您查询的 SNMP 代理的供应商处获得 MIB 文档。它通常作为系统管理员指南或类似指南的一部分发布,或者您可能必须向他们的客户支持请求它。