Wireshark:读取8个字节的时间戳

时间:2017-10-18 20:56:48

标签: wireshark-dissector

我在C' C'我发现需要从数据包中读取8个字节的时间戳。

enter image description here

我正在尝试以下代码:

g_print("offset=%d, starttime=0x%08x\n", offset, tvb_get_letoh64(tvb, offset));

我得到了:

offset=8, starttime=0x0362ea14

这只是我期待的8个字节中的4个字节。

我如何阅读它以便输出:

offset=8, starttime=0x14ea620305779840

我也试过用它来阅读:

g_print("offset=%d, starttime=0x%08x\n", offset, tvb_get_bits64(tvb, 64, 32, ENC_LITTLE_ENDIAN));
g_print("offset=%d, starttime=0x%08x\n", offset, tvb_get_bits64(tvb, 64, 64, ENC_LITTLE_ENDIAN));

它打印了时间戳的4个第一个字节,第二个调用打印了最后4个字节。我错过了一些非常基本的东西......

第二个问题,好吧,让我们假设我得到了正确的值并将其转换为nstime_t,我如何将其格式化为Date \ time格式,如:

YYYY-MM-DDZHH:MM:SS:MMMM

非常感谢你!

1 个答案:

答案 0 :(得分:2)

你得到什么输出?

g_print("offset=%d, starttime=0x%08lx\n", offset, tvb_get_letoh64(tvb, offset));

至于你的第二个问题,这8个字节是什么意思?也许您可以使用FT_ABSOLUTE_TIME声明您的hf变量,并使用类似proto_tree_add_time()proto_tree_add_time_item()proto_tree_add_time_format_value()proto_tree_add_time_format()的内容?