WINAPI:CreateFile到网络适配器以读取原始字节

WINAPI:CreateFile到网络适配器以读取原始字节,c,winapi,C,Winapi,是否可以读取类似于串行端口的网络适配器?我知道串行端口可以通过CreateFile WINAPI函数读取。是否有类似的方法从网络适配器读取原始字节 我知道s,但WiFi示例非常稀少。如果您想要捕获原始数据包,您需要一个支持驱动程序来完成此操作。您可以在使用创建套接字时传递SOCK_raw标志(或者,根据您的喜好运行)。这将在MSDN上的下进行更详细的描述 从那一页-- 应用程序创建套接字后 对于SOCK_RAW类型,此插座可能为 用于发送和接收数据。全部的 在套接字上发送或接收的数据包 未加工的

是否可以读取类似于串行端口的网络适配器?我知道串行端口可以通过CreateFile WINAPI函数读取。是否有类似的方法从网络适配器读取原始字节


我知道s,但WiFi示例非常稀少。

如果您想要捕获原始数据包,您需要一个支持驱动程序来完成此操作。

您可以在使用创建套接字时传递
SOCK_raw
标志(或者,根据您的喜好运行)。这将在MSDN上的下进行更详细的描述

从那一页--

应用程序创建套接字后 对于SOCK_RAW类型,此插座可能为 用于发送和接收数据。全部的 在套接字上发送或接收的数据包 未加工的SOCK_类型被视为 未连接套接字上的数据报

值得注意的是,微软在WindowsXPSP2之后削弱了原始套接字的实现;有关详细信息,请参见MSDN页面的
原始套接字限制部分:

  • TCP数据不能通过原始套接字发送
  • 无法通过raw发送源地址无效的UDP数据报 插座
  • 不允许使用原始套接字调用bind函数

如果这些限制太严格,您可以退回到以前推荐的winpcap库。

Duplicate of@Kant:抱歉,我不认为这是重复的,因为1。我不想在以太网帧中通信。2.我想要一个WINAPI的答案最好。请更准确。你到底想通过什么进行通信?你在使用无线局域网吗?应始终支持以太网。