ошибка tshark при фильтрации времени эпохи

У меня есть файл pcap, и я хочу отфильтровать некоторые пакеты на основе временной метки их эпохи с помощью tshark.

У меня есть метка времени t1. Мне нужны пакеты, чья временная метка эпохи «позднее», чем t1. Отметка времени t1 извлекается из другого файла pcap. Все идет нормально.

В следующих строках я конвертирую метку времени t1 (1499351908.01) в формат даты и времени p (2017-07-06 10:38:28). Я делаю это, потому что tshark нуждается в такой нотации для фильтрации. В противном случае возникает ошибка.

t1_c = DT.datetime.fromtimestamp(t1)
p = t1_c.strftime('%Y-%m-%d %H:%M:%S')

В следующей строке я указываю входной и выходной файл и фильтр tshark:

os.system('tshark -r test_in.pcap -w test_out.pcap -Y "frame.time >= p"')

Поэтому, если я запускаю свой код, возникает эта ошибка tshark:

tshark: "p" is not a valid absolute time. Example: "Nov 12, 1999 08:55:44.123" or "2011-07-04 12:34:56"

Что случилось? Неправильно ли обозначение фильтрации?

Заранее спасибо!


person crappidy    schedule 06.07.2017    source источник


Ответы (1)


Простое переписывание p в вашей строке не заменит его. Вот как должна выглядеть ваша строка:

os.system('tshark -r test_in.pcap -w test_out.pcap -Y "frame.time >= {}"'.format(p))
person Anthony Rossi    schedule 06.07.2017