如何解决AttributeError: 'L2bpfSocket' 对象没有属性 'ins'
我正在尝试构建一个扫描本地网络的 Networkscanner。 这是我的做法:
- 创建 ARP 请求。
- 创建以太网帧。
- 将 ARP 请求置于以太网帧内。
- 发送组合帧并接收响应。
- 然后解析响应并打印结果。
这是我目前的代码:
#!/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,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
。
解决方法
确保您以 root 身份运行脚本。
第二个问题并不重要,主要是 Scapy 无法打开 /dev/bpf
处理程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。