创建原始套接字时出错

时间:2017-05-30 03:02:00

标签: 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

1 个答案:

答案 0 :(得分:1)

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

如果在Windows命令提示符下运行脚本并选择&#34;以管理员身份运行&#34>,则可以为脚本授予管理权限。选项。