是否可以读取类似于串行端口的网络适配器?我知道可以使用CreateFile WINAPI函数读取串行端口。是否有类似的方法从网络适配器读取原始字节?
我知道WiFi/Network Function,但WiFi示例相当稀疏。
答案 0 :(得分:1)
如果要捕获原始数据包,则需要WinPCAP之类的支持驱动程序来执行此操作。
答案 1 :(得分:1)
使用WSASocket()(或socket()创建套接字时,您可以传递SOCK_RAW
标志,因为您的品味正在运行)。这在MSDN上的TCP/IP Raw Sockets下进一步详细描述。
从该页面 -
应用程序创建套接字后 SOCK_RAW类型,这个插座可能是 用于发送和接收数据。所有 在套接字上发送或接收的数据包 类型SOCK_RAW被视为 未连接套接字上的数据报。
值得注意的是,微软在Windows XP SP2之后削弱了他们的原始套接字实现;有关详细信息,请参阅MSDN页面Limitations on Raw Sockets:
- 无法通过原始套接字发送TCP数据。
- 无法通过raw发送具有无效源地址的UDP数据报 插座。
- 不允许使用原始套接字调用绑定函数。
如果这些限制过于严格,您可以回退到之前推荐的winpcap库。