使用C发送802.11帧的最简单方法是什么?

时间:2017-10-20 13:45:24

标签: c packet 802.11

我是C的初学者,我最近决定使用Scapy / Python, 将此项目迁移到C,因为我希望获得更好的性能。我希望发送第2层数据,特别是信标帧以通告接入点。

到目前为止,我发现我需要(或者更确切地说)使用libpcap和一个名为ieee80211.h的Linux头文件来预先定义数据包,这是我可以从其他问题中收集到的。我发现其他信息说我应该使用原始套接字而不是libpcap?我不确定这是否是我所需要的。我在Google上找到的大部分信息和教程都是指数据包嗅探,而不是发送。

如何定义自定义帧和/或数据包(例如信标帧或关联请求),然后将其发送到wlan0等?

2 个答案:

答案 0 :(得分:2)

我想我可能会更新这个。我用了libpcap。

您只需要使用您的设备创建一个句柄,将其设置为成功监控模式(重要),检查数据链接类型(例如,使用Radiotap进行第2层的802.11),然后使用pcap_sendpacket(handle, packetArrayContainingHex, size);。困难的部分是形成合法的数据包,不被拒绝或丢弃,看看有线电视帮助。

答案 1 :(得分:0)

link可能有所帮助。它基本上以原始数据包级别打开驱动程序,并创建整个数据包以通过网络发送,正如您的问题所示。