1

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

有没有办法查询 OID(即使没有创建实例)并让它返回类型(例如 Integer32、Gauge32、OctetString 等)?

我也尝试使用 snmpwalk ,但仅在 OID 实例已设置时才返回该值。如果未设置,则返回“此 OID 处当前不存在此类实例”

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

谢谢!

4

1 回答 1

0

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

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

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

于 2015-01-19T11:51:53.433 回答