【发布时间】:2012-05-25 14:55:26
【问题描述】:
我正在编写一个 SNMP 代理,并且 MIB 定义包含一个 Unsigned32 类型的 OID。
代理的 Unix 实现使用 Net-SNMP 并将 OID 设置为 ASN_UNSIGNED 类型,因为它没有 ASN_UNSIGNED32。当我使用 Wireshark 查看 GET 响应时,它会将其解码为“Gauge32”值。乍一看,这是有道理的,因为根据 RFC 1902,Unsigned32 和 Gauge32 是相同的。
Windows 实现基于 Windows 的 SnmpAPI.lib 并将 OID 设置为 ASN_UNSIGNED32,当我使用 Wireshark 查看 GET 响应时,它会将其解码为“Unsigned32”。这对我来说看起来更好。
为什么这 2 种实现会在线路上产生不同的结果?
哪个是正确的版本,我如何设法从两个实现中获得相同的版本?
【问题讨论】:
标签: c++ windows linux snmp net-snmp