Извлечь определенный период времени в файлах pcap

У меня есть один большой файл pcap, и моя цель состоит в том, чтобы извлечь только определенный период меток времени из трасс (например, время набора данных начинается с 0 до 200, но я хочу только от 50 до 100 секунд).

я пытался использовать инструменты editcap и использовать эту команду

 editcap -A "50.000000000" -B "100.000000000"  input_file output_file

так как мое поле времени набора данных показывает этот формат. Проблема в том, что это дает ошибку

"editcap: "50.000000000" isn't a valid time format"

я пробовал другим способом, например, согласно веб-сайту wireshark, формат должен быть таким, а также заканчиваться той же ошибкой.

The time is given in the following format YYYY-MM-DD HH:MM:SS

Некоторым из обсуждаемых решений в сети является использование цитаты, но также выдает ошибку

"YYYY-MM-DD HH:MM:SS"

Вопрос в том, каков реальный формат использования инструмента editcap для выполнения моей цели выше.

3 ответа

Поскольку даты вашего захвата указаны по времени UTC, а затем могут отличаться от того, что вы видите, используйте две следующие команды:

>> capinfos -a -e 201609011400.pcap 
File name:           201609011400.pcap
Packet size limit:   inferred: 34 bytes - 96 bytes (range)
Start time:          Thu Sep  1 07:00:00 2016
End time:            Thu Sep  1 07:15:00 2016
>> editcap -A "2016-09-01 07:00:00" -B "2016-09-01 07:05:00" 201609011400.pcap 201609011400_1st_third.pcap
editcap  -A "2006-12-15 13:17:10" ...

работал нормально для меня (на Windows).

Примечание: вы должны использовать время, отображаемое tshark, используя -tad вариант (без дробной секунды).

То есть: указание субсекунд (2006-12-15 13:17:10.1234) будет игнорировать часть секунд.

Вы можете попробовать tshark таким образом, вместо использования editcap:

$ tshark -r input.pcap -R "frame.time_relative >= 50 && frame.time_relative <= 100" -w output.cap
Другие вопросы по тегам