我一直在环顾四周,似乎找不到这个问题的答案。我正在使用net-snmp的snmpd进行嵌入式项目。我有额外的代码写入snmpd以支持GET和v2陷阱,但现在我可能需要切换到v3陷阱/通知。
所以,这是我的问题:
假设我已经设置了我的v3密码,加密等,是否有send_v2trap()
函数的v3模拟?我无法想象它就像send_v3trap()
一样容易,但必须有一种直截了当的方式。
另外,我严格限制在C.我想在其他语言中使用net-snmp绑定可能会更容易,但这对我来说不是一个选择。
答案 0 :(得分:1)
来自netsnmp_trap_api(3)
:
send_v2trap() uses the supplied list of variable bindings to form an
SNMPv2 trap, which is sent to SNMPv2-capable sinks on the configured
list. An equivalent INFORM is sent to the configuredq list of inform
sinks. Sinks that can only handle SNMPv1 traps are skipped.
这似乎表明同一个函数也应该能够发送v3陷阱(因为v3陷阱与v2陷阱相同)。
此外,查看代码(具体来说,agent/agent_trap.c
),确实可以看到您的初始猜测是正确的,并且send_v3trap()
函数存在。定义上面有一条评论,说:
Similar to send_v2trap(), with the added ability to specify a context. If
the last parameter is NULL, then this call is equivalent to send_v2trap().
希望这有帮助。