创建原始套接字时发生错误。

3

我正在尝试创建一个数据包嗅探器,为了做到这一点,我首先需要创建一个原始套接字。我运行代码来看看能否先创建一个原始套接字。

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW)

然而,当我运行代码时,我的解释器遇到了一个错误。
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    s = socket.socket(socket.AF_INET, socket.SOCK_RAW)
  File "C:\Python\Python35\lib\socket.py", line 134, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions

显然,我的操作系统是Windows 10,它不允许我创建原始套接字。如何在不使用其他类型的操作系统的情况下解决这个问题?注意:我正在使用Python 3.6.0。

1个回答

1

创建原始套接字需要提升特权。在启用用户账户控制(UAC)的 Windows 系统中,默认情况下用户以非特权模式运行程序。

如果您在 Windows 命令提示符中运行脚本并选择“以管理员身份运行”选项,您可以为脚本赋予管理员权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接