【问题标题】:WinSNMP v1trapsWinSNMP v1 陷阱
【发布时间】: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 地址和端口,SnmpStrToEntitySnmpSetPort 并且我在 SnmpSendMsg 函数中使用了这个 HSNMP_ENTITY,但陷阱仍然从另一个端口(在动态端口范围内的某个位置)。

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

【问题讨论】:

    标签: c++ snmp oid snmp-trap winsnmp


    【解决方案1】:

    几个想法:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 2011-10-07
      • 2010-10-22
      相关资源
      最近更新 更多