如何使用 Net-SNMP API 编写代码发送用户定义的陷阱

Posted

技术标签:

【中文标题】如何使用 Net-SNMP API 编写代码发送用户定义的陷阱【英文标题】:How to write a code sending user defined traps by using Net-SNMP API 【发布时间】:2013-12-03 07:39:40 【问题描述】:

我们能否编写代码来发送用户定义的陷阱,而不是 snmpd 中提到的那些,使用如下 Net-SNMP API 来发送陷阱 netsnmp_send_traps()、send_v2trap()、send_v3trap()?

我不打算编写任何 MIB 模块。所以我不希望我的陷阱应该通过snmpd(代理守护进程)。

我想要实现的想法是从外部代码发送陷阱到 snmptrapd,它将接收陷阱并将其转发给配置的陷阱接收器,以便更熟悉 Net-SNMP 库。

【问题讨论】:

你应该能看懂snmptrap的源码,net-snmp.org/wiki/index.php/TUT:snmptrap 我不想使用 snmptrap,因为它是一个命令。如果我在我的代码中使用 snmptrapd 命令,它会不必要地被 syscall() 分叉来执行。我想克服这一点。有什么办法可以克服吗? 但是它是完全开源的,所以你可以看到它使用什么 API 来发送陷阱。我不是要你调用命令。 好的。感谢您的评论。你能告诉我agent发送的trap和snmptrap命令发送的trap有什么区别吗? 数据包中的字节都是一样的,但是要注意发送数据包的端口。 【参考方案1】:

没有提供 Net-SNMP API。我们可以只 fork-exec Net-SNMP 命令发送陷阱。

【讨论】:

以上是关于如何使用 Net-SNMP API 编写代码发送用户定义的陷阱的主要内容,如果未能解决你的问题,请参考以下文章

如何使用来自 Roblox Games API 的信息?

如何无需在推荐的框架中编写测试用例即可获得 nodejs 应用程序的代码覆盖率?

如何从 API 发送错误

如何使用 Discord API 和 Python 请求发送图片

如何使用python发送电子邮件[关闭]

Net-SNMP - 在新的 MIB 模块中编译,无需编译整个 SNMP 代理