在纪元时间过滤时出现tshark错误

时间:2017-07-06 15:34:57

标签: python-2.7 time filter epoch 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"

有什么问题?过滤符号是错误的吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

简单地在你的字符串中重写p不会替换它。以下是您的行应该是什么样的:

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