Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在linux中使用原始套接字发送802.11管理帧和数据帧_C_Linux_Raw Sockets - Fatal编程技术网

C 如何在linux中使用原始套接字发送802.11管理帧和数据帧

C 如何在linux中使用原始套接字发送802.11管理帧和数据帧,c,linux,raw-sockets,C,Linux,Raw Sockets,我正在尝试构建一个应用程序,它将使用原始套接字从用户空间一起发送802.11管理帧和数据帧。我可以使用sendto()函数发送数据帧,但我还需要发送管理帧,这是我最头疼的地方。有什么可能的方法吗?要从无线接口发送管理、数据或任何类型的纯原始数据包,您必须执行以下操作: 确保无线接口硬件在监控模式下支持数据包注入 将无线接口设置为监视器模式。e、 g sudo-ifconfig-wlan0-down sudo iwconfig wlan0模式监视器 或者您也可以创建一个新的虚拟监视器界面 sudo

我正在尝试构建一个应用程序,它将使用原始套接字从用户空间一起发送802.11管理帧和数据帧。我可以使用sendto()函数发送数据帧,但我还需要发送管理帧,这是我最头疼的地方。有什么可能的方法吗?

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

  • 确保无线接口硬件在监控模式下支持数据包注入
  • 将无线接口设置为监视器模式。e、 g
  • sudo-ifconfig-wlan0-down
    sudo iwconfig wlan0模式监视器

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

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

  • 现在打开此监视器模式接口的原始套接字

  • 最后,在为管理和控制帧构建无线802.11数据包时,在开始处构建并附加适当的radiotap报头。由于您基本上绕过了所有较低级别的无线驱动程序(处理管理和控制帧),因此包含radiotap标头就成了您的工作


  • 你试过谷歌搜索一下吗?看看这个。你需要使用像libtins这样的东西来使用radiotapextension@Gaurav我研究了这个Github链接,实际上实现了它。问题是,当我检查wireshark中的跟踪时,802.11帧是数据帧,但我期望的是使用原始套接字发送控制帧。