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

问题描述 投票:0回答:1

我想将tcpdump输出传递给我选择的程序的stdin。但是,我不知道tcpdump捕获的每个数据包之间的分隔符是什么。我已经浏览了联机帮助页,但没有找到任何设置来在每个数据包之间设置自定义分隔符。

我想将以下格式用于我选择的程序:

Src_IP_of_Packet, data

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

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

使用上面的命令,我只获取数据而不是源IP。此外,每个数据包似乎都包含一个换行符,因此我的程序会将每一行视为一个新数据包,因为我的程序默认使用换行符作为每个数据包之间的分隔符。

tcpdump
1个回答
1
投票

没有分隔符,也没有办法大大修改tcpdump的输出,使输出更加冗长。如果您正在寻求解析数据,最好将每行文本视为单个数据包,但添加一个或多个-v选项将修改该显示,从而导致每个数据包的行数可变。

如果您想控制数据包标题中的哪些字段显示并添加/修改分隔符,您将要查看tshark,它是Wireshark的一部分,或者通过脚本语言与数据包交互;在这种情况下,使用Scapy的Python是一个很好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.