我对Wireshark非常陌生。在我的日常工作中,我需要从捕获的PCAP文件中删除数据包字节零记录。请在这个过程中帮助我。所附图片仅供参考
答案 0 :(得分:0)
由于您要删除47个TCP流,而要删除28个,因此对于要保留的所有TCP流进行过滤可能会更快一些,因为其中只有19个。
对于您想要的19个流:
您可能希望通过“文件->导出指定的数据包...->所有数据包:已显示” 将生成的已过滤数据包导出到新文件中,因此不必继续过滤那些流了。
答案 1 :(得分:0)
如果您要过滤大量流,那么最好编写一些脚本。这是一个您可以使用的脚本,该脚本在我的Linux机器上进行测试时似乎效果很好。如果您使用的是Windows,则需要编写一个等效的批处理文件,或者如果您已安装Cygwin,则可以按原样使用它。
#!/bin/sh
# Check usage
if [ ${#} -lt 2 ] ; then
echo "Usage: $0 <infile> <outfile>"
exit 0
fi
infile=${1}
outfile=${2}
# TODO: Could also pass the filter on the command-line too.
filter="ip.dst eq 192.168.10.44 and tcp.len > 0"
stream_filter=
for stream in $(tshark -r ${infile} -Y "${filter}" -T fields -e tcp.stream | sort -u | tr -d '\r')
do
if [[ -z ${stream_filter} ]] ; then
stream_filter="tcp.stream eq ${stream}"
else
stream_filter+=" or tcp.stream eq ${stream}"
fi
done
tshark -r ${infile} -Y "${stream_filter}" -w ${outfile}
echo "Wrote ${outfile}"