0

我正在使用分为两部分的“实时”数据分析工具链。第一部分获取要分析的数据,将其打包成 UDP 数据包并发送给另一台主机。第二部分,在上述主机上运行,​​接收 UDP 数据包并对接收到的数据包进行分析。“实时”是指分析工具链的输出对人类用户来说应该是实时的,因此最长 100 毫秒的延迟是可以接受的。

我正在考虑为接收部分提供一个新的数据源。我正在寻找的数据正在 Ethercat 总线上传输,我可以对其进行嗅探。Wireshark/tshark 有一个用于 Ethercat 数据包的解析器。话虽如此,在 Wireshark/tshark 中运行的脚本中获取数据非常简单。由于我对分析的第二部分几乎没有控制权,因此我无法轻易修改第二部分以通过 pcap 或其他方式嗅探 Ethercat 帧。

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

4

1 回答 1

0

Wireshark 的 Lua 没有开箱即用的方法,但它是现有的 Lua,因此您可以编写一个 Wireshark Lua 脚本,该脚本本身可以导入(即使用require)任何其他 Lua 脚本或编译的 Lua dll/所以图书馆。因此,例如,您可以使用 LuaSocket 库从您的 wireshark Lua 脚本中发送数据包。

请注意,Wireshark Lua 脚本没有可用的事件循环,因此通过 LuaSocket 接收数据包将无法正常工作,afaik。但是由于您正在谈论通过 UDP 发送,并且仅在调用 Wireshark Lua 脚本时才发送(即,因为您会在点击或解析器中执行 send() 调用),所以我认为它应该可以工作。如果有/没有请回帖,因为这个问题时不时出现,很高兴知道。

于 2014-03-11T21:52:05.100 回答