Извлечь определенный период времени в файлах 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