gpt4 book ai didi

c++ - WinSNMP v1 陷阱

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:43 26 4
gpt4 key购买 nike

我在 C++ 中使用 WinSNMP 来发送 snmp 陷阱。为了向后兼容,我需要发送 v1 snmp 陷阱。 WinSNMP 使用 v2 陷阱,但能够在发送陷阱时将这些 v2 陷阱转换为 v1。我使用 SnmpSetTranslateMode(SNMPAPI_UNTRANSLATED_V1) 来做到这一点。我还在绑定(bind)列表的开头添加了 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) 在绑定(bind)列表的末尾,以便可以发送 v1 陷阱。

除两件(可能相关的)事情外,一切正常。

陷阱中的 agent-addr 字段始终为 0.0.0.0(我尝试将 snmpTrapAddress oid(1.3.6.1.6.3.18.1.3.0) 添加到绑定(bind)列表,但没有不工作)。我希望此字段包含源的 IP 地址。

第二个问题是,虽然我在 HSNMP_ENTITY 中用 SnmpStrToEntitySnmpSetPort 指定了一个 IP 地址和一个端口,但我使用了这个SnmpSendMsg 函数中的 HSNMP_ENTITY 陷阱仍然从另一个端口(动态端口范围内的某处)发送。

这里有没有人知道如何解决这个问题,或者谁能告诉我这是否可行?

最佳答案

几个想法:

  • agent-addr可以被下层设置为网络适配器的IP地址。是否有将一个特定适配器与 SNMP 相关联的选项?

  • 为什么要设置trap的源端口? SNMP 只要求将 trap 发送到 UDP 端口 162;除非您的特定应用程序有其他要求,否则来源是无关紧要的。 (有关 SNMP 的详细信息,请参阅 RFC 1067。)

关于c++ - WinSNMP v1 陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/261294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com