【问题标题】:editcap -A and -B: what time zone should I use?editcap -A 和 -B:我应该使用哪个时区?
【发布时间】:2020-02-03 06:48:00
【问题描述】:

我需要从一个大的 pcap 中提取特定时间范围内的数据包。我发现 editcap 的 -A 和 -B 选项非常适合这项任务,除了我的目标时间范围是纪元时间,而 -A/B 需要格式为 YYYY-MM-DD HH:MM:SS 的时间。

我的问题是当我将纪元时间转换为 YYYY-MM-DD HH:MM:SS 时,我应该使用哪个时区? (我不确定这是否相关,但我使用的大 pcap 是从不同时区捕获的较小 pcap 的合并)。

我尝试了 tshark,它允许基于纪元时间 (frame.time_epoch>=X) 进行过滤,但 tshark 似乎资源昂贵,并且经常被我使用的 ubuntu 服务器杀死。

将不胜感激!

【问题讨论】:

  • 使用系统时间。您可以在 unixy 系统上使用date +"%Z %z" 进行检查
  • 感谢您的回复!只是为了更好地了解它是如何工作的:捕获时间戳在内部存储为纪元时间是否正确,因此一旦我输入editcap的系统时间被转换为纪元时间,editcap可以提取正确的数据包,无论哪个捕获数据包的时区?

标签: wireshark tcpdump tshark timestamp-with-timezone editcap


【解决方案1】:

使用系统的时间。

100% 正确。解析时间,然后将其馈送到例程 (mtkime()),该例程将机器时区本地时间的年/月/日/小时/分钟/秒值转换为 POSIX 时间(“纪元时间”,其中“纪元”是 1970-01-01 00:00:00 UTC 的 UN*X/POSIX 纪元。

捕获时间戳在 pcap 内部存储为纪元时间是对的吗

是的。

因此,一旦我输入 editcap 的系统时间转换为纪元时间,editcap 就可以提取正确的数据包,无论数据包是从哪个时区捕获的?

是的。

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多