我想做的事:在用户空间实现第 2 层协议。
所以我在 Linux 2.6.32 下使用 pcap 来嗅探数据包:
...
struct pcap_t *pcap_h = pcap_open_live("wlan0", BUFSIZ, 1, 0, errbuf);
...
while (1) {
int ret = pcap_loop(pcap_h, -1, newpkt_callback, NULL);
...
}
...
这适用于所有数据包。但是,当我使用 pcap 发送没有 ether_head 和 IP 标头的数据包时:
const char pkt[] = "WHATEVER";
nsent = pcap_sendpacket(pcap_h, (const u_char *)pkt, len);
...
我只能在本地主机上嗅探数据包,而不能在运行相同程序的其他笔记本电脑上嗅探。所以问题是“如何在 wlan 上广播没有 ether_head 的消息”?任何指针将不胜感激。