通过网络发送的 MAC 地址的格式

Format of MAC address sent over network

给定一个标准 Mac 地址 "xx:xx:xx:xx:xx:xx" 它需要采用什么格式才能使用 libpcap 的数据包注入发送?

我将它加载到以太网框架中,其中 srcMac 只是一个字符:

memcpy(&ethernet.ether_src, srcMac, sizeof(ethernet.ether_src));

但是在wireshark中地址不正确。 wireshark 中的可见 Mac 地址会根据字符串的内容而变化,因此它不会被默认地址或任何内容覆盖。

我想,在您的代码中,ethernet.ether_src 的类型为 struct ether_addr,因此它不仅仅是一个 char*-字符串。

因此您需要将 ASCII 字符串转换为以太网地址,例如函数声明为

extern struct ether_addr *ether_aton (__const char *__asc) __THROW;