首页 > 解决方案 > AttributeError:“L2bpfSocket”对象没有属性“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无法创建的程序执行,因此没有 Attribute ins

但是我不知道如何解决这个问题,或者为什么L2bpfSocket不能首先创建。

标签: pythonsocketsscapyattributeerror

解决方案


确保您以 root 身份运行脚本。

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


推荐阅读