【问题标题】:Does winpcap/libpcap allow me to send raw wireless packets?winpcap/libpcap 是否允许我发送原始无线数据包?
【发布时间】:2011-12-18 06:59:03
【问题描述】:

一段时间以来,我一直在使用 winpcap 通过有线连接发送原始数据包。我正在构建自己的协议(没什么特别的,只是掌握它的窍门),但现在我也想将它扩展到无线连接。 winpcap 是否允许我通过无线适配器发送原始数据包?

我在 windows xp 和 windows 7 上使用 VC++。在我的 windows 7 机器上它似乎可以工作,但在我的 xp 机器上 winpcap 甚至无法打开我的适配器来发送/接收数据包。我试图在我的 xp 机器上启动wireshark 以查看从我的另一台机器发送的数据包是否到达,但我的wireshark 也无法打开我的无线适配器。然后重新启动进入ubuntu并再次尝试。这次wireshark确实工作了,但是数据包没有出现。

关于 winpcap 在无线传输方面的限制,我有什么需要了解的吗?如果有限制,是否有替代方法可以让我在 Windows 上通过无线网络发送原始数据包?

【问题讨论】:

  • 1.编写自己的低级协议通常是一个坏主意,您最好至少坚持使用 ip,最好使用 tcp 或 udp,并在其上添加自己的应用程序层。
  • 2. windows 允许发送原始数据包而不使用 libpcap。
  • @adrien:不过,只有管理员用户才能访问 Windows 上的 RAW 套接字。
  • 最重要的是,在 windows 7 之前,windows xp sp2+ 中不支持(或受限制)原始套接字。只有 windows xp sp 1 以下。所以我认为使用 winpcap/lipcap 是更便携的方法。 @Adrien,我正在编写的协议永远不会用于任何严肃的事情。这只是为了消遣,因为我想看看我是否可以让计算机以他们想要的方式进行交流。
  • 还有人有什么想法吗?如何通过无线网络发送原始数据包?

标签: windows wireless winpcap


【解决方案1】:

如果“raw”的意思是“原始 802.11 数据包”,那么 libpcap 可能会允许,但 WinPcap 就不允许了。见my answer to another question。如果您可以在 Linux、*BSD 或 OS X 上将适配器置于监控模式,您可能能够发送原始 802.11 数据包。然而,在 Windows 上,不仅将其置于监控模式需要大量工作(可能包括新的 kernel-mode 代码!),一旦您将其置于监控模式,它可能无法发送任何个数据包。

如果“原始”仅表示“原始 IP 数据包”,那么原始 IP 套接字应该像在以太网上一样正常工作(或不正常)。

【讨论】:

    猜你喜欢
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多