【问题标题】:read a PCAP file with Lua script使用 Lua 脚本读取 PCAP 文件
【发布时间】:2012-05-25 13:46:44
【问题描述】:

我有一个读取 PCAP 文件的 Lua 脚本。对于一个数据包,我可以用表达式得到它的时间

os.date("%Y/%m/%d %X", last_pinfo.abs_ts)

结果类似于“2012/05/24 11:32:50”,但我想要的结果类似于“2012 年 5 月 24 日 11:32:50.476690000”。这可能吗?

【问题讨论】:

    标签: time lua pcap


    【解决方案1】:

    Lua 的 os.date 遵循与 C 的 strftime 函数相同的格式。

    但是,标准 Lua 中的时间只能精确到秒。您必须添加来自其他来源的秒的小数部分,例如 LuaSocket 的 socket.gettime()

    require 'socket'
    time=socket.gettime()
    print(os.date("%B %d, %Y %H:%M:%S")..select(2,math.modf(time),time)
    

    【讨论】:

    • LuaSocket 中的 socket.gettime() 可以得到亚秒级精度的时间。
    • 谢谢,已调整,已调整我的答案以包含您的建议!
    • 谢谢。我不知道lua中有模块套接字。这真的很有帮助。但我还有一个问题,当我使用 socket.gettime() 时,我怎么知道我正在读取哪个数据包?在我的代码中,我有“pinfo”来指示我需要的数据包。但是对于“socket”,我不确定。
    • 带有socket.gettime()的那个只是为了获取机器上的当前时间。你可以在时间变量中格式化任何东西,无论你得到它。它只需要从纪元开始以秒为单位。从您的示例代码来看,您将使用 last_pinfo.abs_ts
    • 好的,我明白了。非常感谢。
    猜你喜欢
    • 2013-05-27
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    相关资源
    最近更新 更多