diameter.Event-Timestamp,以秒为单位,单位为wireshark lua
我对lua脚本中的diameter.Event-Timestamp内容感兴趣。在协议级别上,它以unix秒的形式传输,但我的字段将其解码为人类可读的格式。问题是:如何从该字段中获取实际的无符号数 这就是我现在拥有的: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
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或一些我可以参考的参考代码有何建议?