我在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陷阱。WinSNMP v1traps
一切工作正常,除了两(可能有关)的东西。
陷阱中的agent-addr
字段始终为0.0.0.0(我尝试将snmpTrapAddress oid(1.3.6.1.6.3.18.1.3.0)添加到绑定列表,但没有奏效)。我希望这个字段包含源的IP地址。
第二个问题是,虽然我指定一个IP地址,并在HSNMP_ENTITY
与SnmpStrToEntity
和SnmpSetPort
一个端口,我用这个HSNMP_ENTITY
在SnmpSendMsg
功能陷阱还是会从其他端口发送(某处动态端口范围)。
在这里有谁有一个想法如何解决这个问题或谁可以告诉我,如果这是可能的?