尝试使用 python 终端中 scapy 模块中的"traceroute"函数时出错。操作系统: ubuntu 18.04



我在python终端上键入了这个:

from scapy.all import *
traceroute("gmail.com")

得到这个错误:

File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/dist-packages/scapy/layers/inet.py", 
line 1428, in traceroute
timeout=timeout, filter=filter, verbose=verbose, **kargs)
File "/usr/local/lib/python3.6/dist-packages/scapy/sendrecv.py", 
line 326, in sr
s = conf.L3socket(filter=filter, iface=iface, nofilter=nofilter)
File "/usr/local/lib/python3.6/dist-packages/scapy/arch/linux.py", 
line 326, in __init__
self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, 
socket.htons(type))
File "/usr/lib/python3.6/socket.py", line 144, in __init__
_socket.socket.__init__(self, family, type, proto, fileno)
PermissionError: [Errno 1] Operation not permitted

我已经尝试过在网上搜索解决方案,但没有成功。我很乐意在我遇到的这个问题上得到帮助;提前谢谢。

traceroute需要访问原始套接字,因此,由于原始套接字受到Linux 的限制,您需要以root身份启动python

启动shell时键入sudo python,或者键入sudo scapy(要预先配置scapy shell(,或者如果是程序文件,则键入sudo python yourprogram.py

相关内容

最新更新