Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
diameter.Event-Timestamp,以秒为单位,单位为wireshark lua_Lua_Wireshark - Fatal编程技术网

diameter.Event-Timestamp,以秒为单位,单位为wireshark lua

diameter.Event-Timestamp,以秒为单位,单位为wireshark lua,lua,wireshark,Lua,Wireshark,我对lua脚本中的diameter.Event-Timestamp内容感兴趣。在协议级别上,它以unix秒的形式传输,但我的字段将其解码为人类可读的格式。问题是:如何从该字段中获取实际的无符号数 这就是我现在拥有的: diaETS = Field.new("diameter.Event-Timestamp") tap_diameter = Listener.new("frame", "diameter.cmd.code==271 && diameter.Accounting-Re

我对lua脚本中的diameter.Event-Timestamp内容感兴趣。在协议级别上,它以unix秒的形式传输,但我的字段将其解码为人类可读的格式。问题是:如何从该字段中获取实际的无符号数

这就是我现在拥有的:

diaETS = Field.new("diameter.Event-Timestamp")
tap_diameter = Listener.new("frame", "diameter.cmd.code==271 && diameter.Accounting-Record-Type != 3", false)
function tap_diameter.packet(pinfo,tvb,tapinfo)
        local ets = {diaETS()}
        for i in pairs(ets) do
                print(ets[i]);
    end
end
答复是:

"May 21, 2014 10:18:01.000000000 CEST"
我希望:

1400660281

谢谢

您可以发布一个示例pcap捕获文件,其中包含包含该AVP的相关DIAMETER消息吗?(例如,将其发布到某个地方)可能有一个子字段,可以通过检索直接获取数字


否则,您可以使用Lua的
os.time()
函数将字符串转换回数字——wireshark的Lua也有这个功能。例如,使用
string.match()
解析字符串,以获得月、日、年等离散字段,将它们放在Lua表中,并使用该表调用
os.time()
。棘手的部分是处理时区,因为
os.time()
不会为您处理时区。因此,您可以创建自己的时区字符串->偏移映射表,以计算出要应用于时间的偏移/差异。

谢谢您的建议。我提出了不同的解决方案,但你的解决方案也解决了这个问题。不幸的是,我无法将公开可用的跟踪放在任何地方,因为它是敏感数据:(您好,asdmin,我相信您能够解决diameter lua解剖仪的问题。我想为diameter的所有AVP支持/编写我自己的diameter协议。您对如何开始使用diameter或一些我可以参考的参考代码有何建议?