我有一个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"
有什么问题?过滤符号是错误的吗?
提前致谢!
答案 0 :(得分:2)
简单地在你的字符串中重写p不会替换它。以下是您的行应该是什么样的:
os.system('tshark -r test_in.pcap -w test_out.pcap -Y "frame.time >= {}"'.format(p))