给定一个标准 Mac 地址“xx:xx:xx:xx:xx:xx”,它需要采用什么格式才能使用 libpcap 的数据包注入(inject)进行发送?
我将其加载到以太网框架中,其中 srcMac 只是一个字符:
memcpy(ðernet.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;
关于c - 通过网络发送的 MAC 地址格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45340557/