gpt4 book ai didi

c - 在 c 中发出读取和打印 ip header ID

转载 作者:太空宇宙 更新时间:2023-11-04 04:30:27 24 4
gpt4 key购买 nike

所以我在剖析 IPV4 header 时遇到了问题。特别是我无法读取 ID 部分。

我正在关注这张图片。 IPV4Header

我正在使用 fread 读取整个 ipv4 数据包并将其存储到像这样的字符数组中

     unsigned char buffer[2048] = "";
fread(buffer, 1, 20, file);

现在根据该图像,ID 应该是第 5 个和第 6 个字节。

所以我尝试将它存储到一个 unsigned char 中并像这样打印

unsigned char id = buffer[4] + buffer[5]
printf("Identification: 0x%X (%d)\n", id, id);

但是我得到了错误的值。而且我不确定我做错了什么。任何帮助将不胜感激。

我也错误地阅读了标题的其他几个部分,希望弄清楚这一点会帮助我弄清楚其余部分。

最佳答案

ID 的长度为两个字节,因此您必须使用足够大的整数类型来容纳两个字节。将它们相加并不能达到相同的结果。

unsigned short id = (buffer[4] << 8) | buffer[5];
printf("Identification: 0x%hx (%hu)\n", id, id);

关于c - 在 c 中发出读取和打印 ip header ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36903508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com