tshark的详细使用方法可参见wireshark安装路径中tshark.html,但其参数众多,如果你有如下有功能需求,可直接套用即可。
1.从.pcap文件中提取如wireshark表格中显示的封包摘要信息
tshark -r test.pcap
2.从.pcap文件中提取如wireshark表格中显示的封包摘要信息,并将结果输出到一个文件中
tshark -r test.pcap > text.txt
3.从.pcap文件中提取如wireshark表格中显示的封包摘要信息,指定显示某列
tshark -r test.pcap -T fields -e col.Protocol -e col.Info -E separator=, -E header=y > text.csv
-e col.Protocol即为指定列名,更多的列名参见wireshark
我用tshark 1.10.8.2验证的,据称1.11之后的版本应为 _ws.col.Protocol,且使用1.8.6版时发现不支持col.Protocol关键字
4.从.pcap文件中提取数据包的mac地址、ip地址、TCP/UDP等可以用以下命令。
tshark -r test.pcap -T fields -e eth.src -E header=y -E separator=, -E quote=d -E occurrence=f > test.csv
-e eth.src即指定显示源MAC地址,更多的项目(如-e eth.dst -e ip.src -e ip.dst -e ip.proto)参见wireshark的dispaly filter https://www.wireshark.org/docs/dfref/
示例中的 -E header=y -E separator=, -E quote=d -E occurrence=f是针对输出文本的格式控制,具体意义参见tshark.html
5.对pcap的封包协议作详细解析并输出协议细节
tshark -r test.pcap -V
如要将解析结果输出到文本文件中则为:tshark -r udp.pcap -V -T pdml,输出格式有多种,具体参见tshark.html对参数 -T的说明
6.对pcap的封包协议作详细解析增加对TCP头checksum对错的判断
tshark -r test.pcap -V -o tcp.check_checksum:TRUE
为TRUE即checksum对错要作判断,为FALSE为不判断
同理,对UDP checksum的判断则为:tshark -r udp.pcap -V -o udp.check_checksum:TRUE
tshark的配置项众多,更多的配置项可参见其配置文件,在%AppData%Roaming/Wireshark/preferences文件中
7.承上,如需将IP头解析为DiffServ
tshark -r test.pcap -V -o ip.decode_tos_as_diffserv:TRUE