如何在tcpdump中每个捕获的数据包之间设置分隔符?

时间:2019-04-26 14:39:47

标签: tcpdump

我想将tcpdump输出输出到所选程序的stdin中。 但是,我不知道tcpdump捕获的每个数据包之间的距离是多少。 我浏览了联机帮助页,但没有找到任何设置可在每个数据包之间设置自定义分隔符。

我希望将以下格式通过管道传递给我选择的程序:

Src_IP_of_Packet, data

原始数据(不是ASCII和/或HEX格式)。 即我使用以下命令获得的data

tcpdump udp port 2112 -i eth0 -s0 -w- 

使用上述命令,我仅获取数据,而不获取源IP。 而且,每个数据包似乎都包含换行符,因此我的程序将每一行都视为一个新数据包,因为默认情况下,我的程序将换行符用作每个数据包之间的分隔符。

1 个答案:

答案 0 :(得分:1)

除了使输出更加冗长之外,没有定界符,也没有办法大大修改tcpdump的输出。如果您想解析数据,则最好将每一行文本视为一个数据包,尽管添加一个或多个-v选项将修改该显示,从而导致每个数据包的行数可变。< / p>

如果您想控制显示包头中的哪些字段并添加/修改定界符,则需要查看tshark(它是Wireshark的一部分)或与之交互通过脚本语言的数据包;在这种情况下,使用Scapy的Python是一个不错的选择。