当scapy和pypcap严重丢失时,如何嗅探python上的所有数据包?

当scapy和pypcap严重丢失时,如何嗅探python上的所有数据包?,python,sockets,scapy,libpcap,Python,Sockets,Scapy,Libpcap,我尝试使用python在Win10上嗅探数据包。然而,我发现很多数据包实际上是由scapy丢弃的 例如,我从ftp下载了一个2MB的文件,wiresharks捕获了近2000个数据包,而scapy只捕获了500个 我尝试过pypcap,结果几乎相同,超过一半的数据包被丢弃,尤其是在下载时 是否有一种解决方案可以避免此类丢失并使scapy执行与wireshark相同的操作,或者python上没有能够在短时间内缓冲大量数据包的库?您可以让scapy使用tcpdump(或Windows下的windum

我尝试使用python在Win10上嗅探数据包。然而,我发现很多数据包实际上是由scapy丢弃的

例如,我从ftp下载了一个2MB的文件,wiresharks捕获了近2000个数据包,而scapy只捕获了500个

我尝试过pypcap,结果几乎相同,超过一半的数据包被丢弃,尤其是在下载时


是否有一种解决方案可以避免此类丢失并使scapy执行与wireshark相同的操作,或者python上没有能够在短时间内缓冲大量数据包的库?

您可以让scapy使用tcpdump(或Windows下的windump)为您嗅探数据包,例如:

sniff(opened_socket=L2ListenTcpdump())

谢谢你的帮助!我已经下载了windump,但它看起来像个控制台?我不知道如何使用它。出现错误:
a=sniff(opened_socket=L2ListenTcpdump(),iface=“Killer E2200千兆以太网控制器”)name错误:未定义名称“L2ListenTcpdump”
一旦安装了windump,就可以使用Scapy的
sniff()
命令。您需要scapy的最新版本。我使用的是最新版本,其他功能也很好,只是无法
嗅探(opened_socket=L2ListenTcpdump())
。所谓“最新版本”,是指最新的稳定版本(2.3.3)?如果是,请获取开发版本。如果您已经有了开发版本,
L2ListenTcpdump
应该存在,这很奇怪。您需要在路径中的文件夹中安装windump(例如,将其复制到Windows/system32)。请注意,如果您使用的是Npcap,则可以使用不同的版本。如果你这样做,斯帕皮会告诉你的