netcat源文件中的数据包分隔符

netcat源文件中的数据包分隔符

是否有分隔符或某种方式告诉 netcat 从文件中每个数据包发送多少字节?在脚本中多次调用 netcat 是不可接受的,因为我需要尽快将它们发送出去。

我已使用 mnc(多播 netcat)将带有二进制数据的 UDP 数据包捕获到文件中,并尝试按如下方式播放它们:

# 启动程序发送组播数据包到230.250.5.1 12340>

# 启动mnc抓包:

 $mnc -l -i eth1 -p 12340 230.250.5.1 >capturefile

... # 使用netcat播放数据包,发送到230.250.5.1 12345

 $netcat -c -w 1 -u -s 10.20.30.40 230.250.5.1 12345 <capturefile

capturefile 似乎有我想要发送的数据包。

当我用 netcat 回放时,数据包被连接起来。在数据包捕获期间,UDP 数据包大小为 208,wireshark 显示数据包大小为 250,我假设包括以太网字节。重播时,wireshark 显示数据包大小为 1016。

答案1

这对您来说可能不可能,但如果您使用socat而不是,netcat您可以使用以下命令轻松设置固定块大小-b

socat -b 208 - udp4:230.250.5.1:12345 <capturefile

如果您有可变长度数据,您可能会考虑使用tcpdumptcpreplay以及pcap文件格式。

相关内容