Wireshark:读取 8 个字节的时间戳
Wireshark: read 8 bytes of timestamp
我是在 'C' 中编写解析器的新手,我发现需要从数据包中读取 8 字节时间戳。
我正在尝试以下代码:
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
非常感谢!
你用这个得到什么输出?
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()
?
之类的东西
我是在 'C' 中编写解析器的新手,我发现需要从数据包中读取 8 字节时间戳。
我正在尝试以下代码:
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
非常感谢!
你用这个得到什么输出?
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()
?