我想用python3做一个简单的网络扫描器,可以扫描整个局域网的设备。这时,我听说了Scapy。然而,每当我尝试运行我的程序时,它都会返回一个错误信息"PermissionError.[Errno 13]Permission denied [Errno 13]拒绝许可"
这是我的代码。
import scapy.all as scapy
def scan(ip):
scapy.arping(ip)
scan("192.168.43.1")
如果你们能解决这个问题,会对我有很大帮助。谢谢你的阅读。
COMPLETE OUTPUT。
Traceback (most recent call last):
File "network_scanner.py", line 7, in <module>
scan("192.168.43.1")
File "network_scanner.py", line 5, in scan
scapy.arping(ip)
File "/usr/local/lib/python3.8/dist-
packages/scapy/layers/l2.py", line 628, in arping
ans, unans = srp(Ether(dst="ff:ff:ff:ff:ff:ff") /
ARP(pdst=net), verbose=verbose, # noqa: E501
File "/usr/local/lib/python3.8/dist-
packages/scapy/sendrecv.py", line 503, in srp
s = conf.L2socket(promisc=promisc, iface=iface,
File "/usr/local/lib/python3.8/dist-
packages/scapy/arch/linux.py", line 467, in __init__
self.ins = socket.socket(socket.AF_PACKET,
socket.SOCK_RAW, socket.htons(type)) # noqa: E501
File "/usr/lib/python3.8/socket.py", line 231, in __init__
_socket.socket.__init__(self, family, type, proto, fileno)
PermissionError: [Errno 13] Permission denied
我相信这个方法 scapy.arping()
打开原始套接字。尝试以root用户身份运行 sudo
.