纪元时间过滤时的 tshark 错误

tshark error at epoch time filtering

我有一个 pcap 文件,我想用 tshark 根据它们的纪元时间戳过滤掉一些数据包。

我有一个时间戳 t1。我需要数据包,其纪元时间戳比 t1 "later"。 时间戳 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"

怎么了?过滤符号有误吗?

提前致谢!

简单地重写字符串中的 p 不会替换它。您的行应该如下所示:

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