我正在开发一个通过 SNMP 协议与嵌入式设备交互的应用程序。为了方便测试,我用Nodejs和snmpjs库写了一个嵌入式设备模拟器。模拟器响应 SNMP 获取/设置并将陷阱发送到管理应用程序。陷阱消息由 snmpjs 库构建,但使用 Node 的标准 UDP 套接字手动发送。
这在模拟一台设备时效果很好,但在尝试模拟多台设备时遇到了问题。具体地,管理应用程序通过分析携带陷阱的UDP数据包的源IP/端口来识别SNMP陷阱的源设备。这使我无法同时模拟多个设备,这是该应用程序最常见的用例。
所以,我的问题是:有没有办法用 Nodejs 控制/欺骗 udp 数据包的源 IP 或端口?或者,也许可以使用某种代理来达到预期的结果?
(注意:在单台机器上运行模拟器是一项严格的要求。此外,我为每个模拟器拥有唯一的 IP/端口是不够的,我必须能够提前知道它们的值,以便我可以配置管理应用程序与它们正确交互。)