【发布时间】:2008-11-04 09:05:13
【问题描述】:
我在 C++ 中使用 WinSNMP 来发送 snmp 陷阱。为了向后兼容,我需要发送 v1 snmp 陷阱。 WinSNMP 与 v2 陷阱一起使用,但能够在发送陷阱时将这些 v2 陷阱转换为 v1。我使用SnmpSetTranslateMode(SNMPAPI_UNTRANSLATED_V1) 来做到这一点。我还在绑定列表的开头添加了 sysUpTime oid (1.3.6.1.2.1.1.3.0)、snmpTrapOID (1.3.6.1.6.3.1.1.4.1.0) 和 enterpriseOID (1.3.6.1.6.3. 1.1.4.3.0) 在绑定列表的末尾,以便可以发送 v1 陷阱。
除了两件(可能相关的)事情外,一切正常。
陷阱中的 agent-addr 字段始终为 0.0.0.0(我尝试将 snmpTrapAddress oid(1.3.6.1.6.3.18.1.3.0) 添加到绑定列表,但没有奏效)。我希望此字段包含源的 IP 地址。
第二个问题是,尽管我在 HSNMP_ENTITY 中指定了 IP 地址和端口,SnmpStrToEntity 和 SnmpSetPort 并且我在 SnmpSendMsg 函数中使用了这个 HSNMP_ENTITY,但陷阱仍然从另一个端口(在动态端口范围内的某个位置)。
这里有没有人知道如何解决这个问题,或者谁能告诉我这是否可能?
【问题讨论】:
标签: c++ snmp oid snmp-trap winsnmp