gpt4 book ai didi

c - MAC 地址的网络字节顺序

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:18 25 4
gpt4 key购买 nike

我正在编写一个代码,该代码要求我解析以 uint8_t * 指针形式接收的传入帧。

我已经编写了一个实用方法来从帧中获取 mac 地址并将其转换为 uint64_t 值以便于计算。

uint64_t addr = uint64_t(_frm_ptr[0]) << 40 | uint64_t(_frm_ptr[1]) << 32 | 
uint64_t(_frm_ptr[2]) << 24 | uint64_t(_frm_ptr[3]) << 16 |
uint64_t(_frm_ptr[4]) << 8 | uint64_t(_frm_ptr[5]);

我需要知道如果源 mac 地址是大端格式的“b8:ac:6f:c0:3d:25”,它会以相同的顺序传输吗?

mac地址是如何在网络上传输的?

上面的代码片段是否适用于所有平台?

最佳答案

帧中的字节是固定顺序的(@Caleb 指出的大端顺序),与主机的字节顺序无关。

因为你是一个一个地复制字节,所以这总是有效的。只有当您使用多字节分配或 memcpy 将帧数据转换为 shortint 时才会出现问题,...看看ntohs() and friends将网络转换为主机,反之亦然。

关于c - MAC 地址的网络字节顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17398882/

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