2016-01-16 14 views
0

У меня есть большой файл pcap, и я бы хотел создать новый pcap, который содержит только первые десять минут трафика. Могу ли я сделать это с помощью tcpdump? Я видел editcap, упомянутый онлайн, но я хотел бы использовать tcpdump, если это возможно.Фильтровать первые десять минут pcap

+0

Попробуйте использовать [ 'wireshark'] (https://www.wireshark.org), либо это эквивалент командной строки 'tshark'. Вы можете использовать его, чтобы открыть pcap и экспортировать выбор или диапазон пакетов. – madmax1

ответ

0

Вы можете сделать это с помощью tcpdump; однако было бы намного проще с editcap, потому что единственный практический способ сделать это с помощью tcpdump, о котором я могу думать, это использовать Wireshark (или tshark), чтобы сначала найти номер кадра пакета, который занимает не менее 10 минут в захвате файл. После того, как у вас есть номер кадра, tcpdump может использоваться только для сохранения пакетов до этого кадра, эффективно ограничивая выходной файл желаемой продолжительностью 10 минут. Вот как:

Во-первых, найти первый пакет, который составляет по меньшей мере 10 минут в файл захвата (здесь я иллюстрировать с tshark, но Wireshark может быть использован, а):

tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0" 

Обратите внимание на номер кадра последнего отображаемого пакета. (Номер кадра является первый номер каждой строки, при стандартных tshark столбцов.) Для наглядности, скажем, что это номер кадра 21038.

Во-вторых, использовать tcpdump только сохранить первые 21038 кадров в новый файл:

tcpdump -r bigfile.pcap -c 21038 -w bigfile_first10min.pcap 

Но поскольку editcap поставляется с пакетом Wireshark, вы могли бы гораздо проще выполнить эквивалент, используя следующий, который будет дробить большой файл захвата в захват файлов каждый 10 минут по длительности (за исключением последнего , которые могут быть меньше):

editcap -F pcap -i 600 bigfile.pcap bigfile_split10min.pcap 

Если вас интересует только первый файл, не обращайте внимания на остальные.

Конечно, как отмечает @ madmax1, можно также применить простую модификацию к вышеупомянутой tshark команде для записи пакеты, соответствующей фильтр в новый файл:

tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0" -w bigfile_first10min.pcap