从Wireshark / tshark发送UDP数据包

我正在使用一个实时的数据分析工具链,它分为两部分。第一部分获取要分析的数据,将其打包成UDP数据包并发送到另一个主机。第二部分在前面提到的主机上运行,接收UDP数据包并对接收到的数据包执行分析。所谓“实时”,是指分析工具链的输出应实时呈现给人类用户,因此延迟高达100毫秒是可以接受的。

我正在研究使接收部分可用的新数据源。我正在获取通过Ethercat总线传输的数据,我可以进行数据嗅探。Wireshark/tshark有一个Ethercat数据包解析器。因此,在Wireshark/tshark中运行的脚本非常简单就可以获取数据。由于我对分析的第二部分控制较少,因此我不能立即修改第二部分以通过pcap或类似方法嗅探Ethercat帧。

是否可能从在Wireshark/tshark中运行的脚本发送UDP数据包?

点赞
用户3395060
用户3395060

WiresharkLua 没有现成的方法来实现此功能,但它是标准的 Lua ,因此您可以编写一个 Wireshark Lua 脚本,它本身可以导入(即使用 require )任何其他 Lua 脚本或编译的 Lua dll/so 库。例如,您可以使用 LuaSocket 库在 Wireshark Lua 脚本中发送数据包。

请注意,Wireshark Lua 脚本没有可用的事件循环,因此通过 LuaSocket 接收数据包不起作用,据我所知。但既然您正在谈论通过 UDP 发送数据,并且仅在调用 Wireshark Lua 脚本时发送数据(即因为您在 tap 或解析器中执行了 send() 调用),我认为它应该可以工作。如果可以/不可以,请回帖,因为这个问题现在和过去都经常出现,了解这一点将很有帮助。

2014-03-11 21:52:05