tshark
- 查看 pcap 文件第一个包的时间,当文件名不包含时间信息时非常有帮助
tshark -c 1 -T fields -e frame.time -r test.pcap
dumpcap
editcap
基本语法
editcap [options] ... <infile> <outfile> [ <packet#>[-<packet#>] ... ]
主要参数分类含义权作解说
包选择类
-r
保留选择的包;默认为删除。
-A <start time>
选择所有包的时间戳大于该时间的包。
-B <stop time>
选择所有包的时间戳小于该时间的包。
删除重复包类
-d
删除重复的包(默认
5
个内进行比对)。
-D <dup window>
删除重复的包,并指定在
<dup window>
个包内进行比对
<dup window>
的范围为
0-1000000
。
-w <dup time window>
删除重复的包,并指定时间在
<dup time window>
之前的数据包才做重复删除操作。
处理类
-s <snaplen>
将数据包截断成长度为
<snaplen>
的数据包。
-C <choplen>
将包尾的
<choplen>
个字节砍掉。
-t <time adjustment>
调整包的时间戳
;<time adjustment>
即可以为正数,也可以为负数。
-E <error probability>
按照
<error probability>
的比例随机制造错包,例如
<error probability>
为
0.05
,则包文件中
5%
的包会随机被配置为各种错包。
输出类
-c <packets per file>
按包个数分割包文件,如
<packets per file>
为
1000
,则将原始包文件分割成多个文件,每个文件的包个数为
1000
,当然最后一个文件的包数可以小于等于
1000.
-i <seconds per file>
按时间分割包文件,如
<seconds per file>
为
10
,则每个被分割的文件中的包时间戳均在
10s
内,且每个包的时间戳又会从
0
开始
.
-F <capture type>
设置输出文件的格式,默认为
pcapng
。
-T <encap type>
设置输出文件中包封装的类型,默认和原始包封装类型一致。
使用示例
1.
将数据包截断为
64
字节长度,且转换为
snoop
的格式:
editcap -s 64 -F snoop capture.pcap shortcapture.snoop
2.
删除原始文件中的第
1000
个数据包:
editcap capture.pcap sans1000.pcap 1000
3.
提取原始文件中的第
200
到
750
个包:
editcap -r capture.pcap small.pcap 200-750
4.
提取原始文件中的第
1, 5, 10 to 20 and 30 to 40
个包:
editcap -r capture.pcap select.pcap 1 5 10-20 30-40
5.
删除与前面
4
个包中有重复的包:
editcap -d capture.pcap dedup.pcap
6.
删除与前面
100
个包中有重复的包:
editcap -D 101 capture.pcap dedup.pcap
7.
是原始文件中
5%
的包随机变为错包:
editcap -E 0.05 capture.pcap capture_error.pcap
capinfos
- 查看 pcap 的信息
capinfos -AM test.pcap
mergecap