如何使用Linux中的RAW套接字发送802.11管理帧和dataframe

我正在尝试构建一个应用程序,它将使用原始套接字从用户空间发送802.11管理帧和dataframe。 我能够使用sendto()函数发送dataframe,但我也需要发送管理帧,我大部分都被卡住了。 有没有可行的方法呢?

要从无线接口发送管理,数据或任何类型的纯原始数据包,您必须执行以下操作:

  1. 确保无线接口硬件支持监控模式下的数据包注入。
  2. 将无线接口设置为监控模式。 例如

sudo ifconfig wlan0 down
sudo iwconfig wlan0模式监视器

或者您也可以创建新的虚拟监视器界面。

sudo iw dev wlan0接口添加mon0型监视器

  1. 现在打开一个原始套接字到这个监控模式界面。

  2. 最后,构建并在开头附加适当的radiotap标头,同时构建用于管理和控制帧的无线802.11数据包。 由于您基本上绕过了所有低杠杆无线驱动程序(处理管理和控制框架),因此包含radiotap标头成为您的工作。