python - 创建原始套接字时出错

标签 python windows sockets operating-system raw-sockets

我正在尝试创建一个数据包嗅探器,为此我需要先创建一个原始套接字。我运行代码以查看是否可以先创建一个原始套接字。

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

最佳答案

创建原始套接字需要更高的权限。在启用了 UAC 的 Windows 上,用户默认在非特权模式下运行程序。

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

关于python - 创建原始套接字时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44252752/

相关文章:

Python - 如何从脚本中的变量内部提取数据?

windows - 在 Visual Studio 的内存地址观察一个类对象

Python Cmd/Powershell 错误 "Traceback (Most recent call last)"

python - 如何使用CSV文件的记录id进行编程?

c++ - 无法在 Windows 中获取调用堆栈

windows - 如何为通过 CreateWindow 创建的窗口指定字体?

java - Python套接字缓冲和数据丢失

.net - 如何检查system.Net.Sockets.TcpClient使用的本地IP地址?

c# - 如何使用 C# 4.0 编写可扩展的套接字服务器?

python - 解析和计算 boolean 集定义