Что я хочу сделать, так это сначала позволить tshark читать с этого pcap файл, а затем используйте временной диапазон, чтобы отфильтровать все сетевые потоки которые находятся в этом временном диапазоне
. Вы должны сделать это с помощью editcap
:
$ editcap -A "2011-07-12 09:49:16" -B "2011-07-12 09:49:20" in.pcap out.pcap
, а затем использовать IP-адрес, чтобы отфильтровать все сетевые потоки из этого ip addr, а затем используйте номер порта tcp и количество пакетов отправлено / получено IP-адресом, чтобы наконец найти нужный мне поток.
$ tshark -r out.pcap -R "ip.addr == $IP && tcp.port == $PORT"
Затем следуйте этому потоку / потоку
$ tshark -r out.pcap -R "ip.addr == $IP && tcp.port == $PORT" \
-T fields -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport | \
while read line; do tshark -r out.pcap \
-R "ip.addr == `echo $line | awk '{ print $1 }'` && \
tcp.port == `echo $line | awk '{ print $2 }'` && \
ip.addr == `echo $line | awk '{ print $3 }'` && \
tcp.port == `echo $line | awk '{ print $4 }'`" \
echo \
done
См. инструмент для разделения файлов pcap по TCP-соединению? , а затем мне немного грустно, что я не могу найти для Linux ничего, что могло бы поддерживать PCAP в надлежащей форме и фильтр по потоку. Если вы можете сделать это, не сосредотачиваясь на потоках, тогда tshark будет соблюдать все обычные фильтры tcpdump (ссылка в pdf). Прочтите дамп и установите флаг -w output
и фильтры, и вы получите более компактный файл.