首页 > 解决方案 > 无法使用 python 套接字 api 函数 socket.ioctl() 在 Windows 10 中设置混杂模式

问题描述

我有以下代码:

import socket

sniffer = socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_IP)
sniffer.bind(("",0))
sniffer.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON)
data = sniffer.recvfrom(65535)
print(f"RECVD : {data}")
sniffer.ioctl(socket.SIO_RCVALL,socket.RCVALL_OFF)
    

其中,我尝试在 windows 中启用 promiscuous

sniffer.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON)

但是当我运行代码时,我得到以下 OSError:

[WinError 10022] 提供的参数无效

快速说明:我通过特权 shell 运行代码。

PS:如果之前有人以某种隐含的形式提出过这个问题,请原谅,因为我已经尽了自己的一份力量,但没有发现任何相关的东西

标签: pythonwindowssocketspacket-snifferspromiscuous-mode

解决方案


推荐阅读