在尝试自己用 Python 执行 TCP 握手之后,我惨痛地了解到现代 Windows 机器不允许通过原始套接字发送 TCP 数据。然而,Python 库 Scapy 似乎能够很好地做到这一点。其他库,如 Npcap 和 WinPcap,似乎也能够在 Windows 上很好地发送原始 TCP 数据。这怎么可能?这些库在幕后做了什么,使它们能够绕过这个限制?
最佳答案
WinPcap(libpcap 的 Windows 实现)作者在他们的网站中说:
WinPcap consists of a driver that extends the operating system to provide low-level network access and a library that is used to easily access low-level network layers.
所以你的问题的答案是:在 Windows 中,libpcap 的实现(这是 Scapy 根据其网站使用的)使用驱动程序来访问低级网络内容
关于scapy - Scapy、Npcap、WinPcap 等库如何绕过 Window 对发送原始 TCP 数据包的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73757285/