AttributeError: 'L2bpfSocket' object has no attribute 'ins'

AttributeError: 'L2bpfSocket' object has no attribute 'ins'

我正在尝试构建一个 Networkscanner 来扫描我的本地网络。 以下是我的做法:

到目前为止,这是我的代码:

#!/usr/bin/env python3
import scapy.all as scapy

IP = 'here i would enter my IP adress'

def scan(ip):
    arp_packet = scapy.ARP(pdst=ip)
    broadcast_packet = scapy.Ether(dst='ff:ff:ff:ff:ff:ff')
    arp_broadcast_packet = broadcast_packet/arp_packet
    scapy.srp(arp_broadcast_packet, timeout = 1, verbose = False)

scan(IP)

但是我收到错误消息:
AttributeError: 'L2bpfSocket' object has no attribute 'ins'

完整消息如下:

Traceback (most recent call last):
 File "/Users/Uni/Dropbox/Mein Mac (Elias MacBook Pro)/Desktop/wifi2.py", line 12, in <module>
   scan(IP)
 File "/Users/Uni/Dropbox/Mein Mac (Elias MacBook Pro)/Desktop/wifi2.py", line 10, in scan
   scapy.srp(arp_broadcast_packet, timeout = 1, verbose = False)
 File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scapy/sendrecv.py", line 552, in srp
   s = conf.L2socket(promisc=promisc, iface=iface,
 File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scapy/arch/bpf/supersocket.py", line 242, in __init__
   super(L2bpfListenSocket, self).__init__(*args, **kwargs)
 File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scapy/arch/bpf/supersocket.py", line 62, in __init__
   (self.ins, self.dev_bpf) = get_dev_bpf()
 File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scapy/arch/bpf/core.py", line 114, in get_dev_bpf
   raise Scapy_Exception("No /dev/bpf handle is available !")
scapy.error.Scapy_Exception: No /dev/bpf handle is available !
Exception ignored in: <function _L2bpfSocket.__del__ at 0x7fc3220493a0>
Traceback (most recent call last):
 File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scapy/arch/bpf/supersocket.py", line 139, in __del__
   self.close()
 File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scapy/arch/bpf/supersocket.py", line 211, in close
   if not self.closed and self.ins is not None:
AttributeError: 'L2bpfSocket' object has no attribute 'ins'
Elias-MBP:~ Uni$ 

我读到这可能是因为程序试图关闭无法创建的 L2bpfSocket,因此没有属性 ins

但是我不知道如何解决这个问题,或者为什么一开始就无法创建 L2bpfSocket

确保您运行您的脚本是根用户。

第二个问题并不重要,主要问题是 Scapy 无法打开 /dev/bpf 处理程序。