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

时间:2018-01-15 21:48:53

标签: c linux raw-sockets

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

      

    sudo iw dev wlan0 interface add mon0 type monitor

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

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