Gen*_*ent 5 c++ linux windows snmp net-snmp
我正在编写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个实现在线上产生不同的结果?
哪个版本正确,我如何才能从两个实现中获得相同的版本?
事实证明,Net-SNMP使用当前的RFC 1902编码,其中Unsigned32和Gauge32是相同的,而Windows使用过时的RFC 1442编码,其中Unsigned32和Gauge32具有不同的编码.
| 归档时间: |
|
| 查看次数: |
1828 次 |
| 最近记录: |