使用 SCAPY 时出现问题(权限被拒绝)

PROBLEM WHILE USING SCAPY (Permission denied)

我正在尝试在 python3 中制作一个简单的网络扫描仪,它可以扫描 LAN 上的整个设备。那是我听说 Scapy 的时候。然而,每当我尝试 运行 我的程序时,它 returns 一个错误 "PermissionError: [Errno 13] Permission denied"

这是我的代码:

import scapy.all as scapy


def scan(ip):

  scapy.arping(ip)

scan("192.168.43.1")

如果你们能解决这个问题,那将对我有很大帮助。谢谢阅读。

完整输出:

          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() 方法会打开原始套接字。使用 sudo 以 root 用户身份托盘 运行。

我有同样的问题但是 "[Errno 1]" ,为我解决的是通过 [=11= 使用 root 权限] (和 "-E" 保护环境) 喜欢:

sudo -E python myScriptName.py

也如前所述。 | ⚠️ “它有自己的安全风险。所以要小心”。

像这样使用 sudo sudo -E python3 Arpt.py