Python Tkinter 错误:AttributeError: 'is_at' - Scapy ARP 包解析问题

错误信息:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.8/tkinter/__init__.py", line 1883, in __call__
    return self.func(*args)
  File "/root/PycharmProjects/pythonProject/i/m.py", line 90, in scan_hosts
    if pkt[ARP].op == ARP.is_at:
  File "/usr/local/python3/lib/python3.8/site-packages/scapy/base_classes.py", line 378, in __getattr__
    raise AttributeError(attr)
AttributeError: is_at

问题分析:

这是一个 AttributeError 异常,意味着代码中尝试访问一个不存在的属性或方法。在这个特定的情况下,代码尝试访问 ARP.is_at 属性,但是这个属性不存在。

可能原因:

  • Scapy 版本问题: ARP.is_at 可能在较旧的 Scapy 版本中存在,但在新版本中已经被移除或重命名。
  • 代码错误: 代码中可能存在错误,例如将 ARP.is_at 写成了错误的名称。

解决方法:

  1. 检查 Scapy 版本: 确保你使用的是最新版本的 Scapy 库,并参考官方文档确认 ARP 类中是否包含 is_at 属性。
  2. 查看代码: 仔细检查代码,确保 ARP.is_at 的拼写正确,并且在使用之前进行了正确的导入。
  3. 参考 Scapy 文档: 查看 Scapy 库的官方文档,了解 ARP 类中可用的属性和方法。
  4. 使用替代方法: 如果 ARP.is_at 属性已经被移除,尝试使用其他属性或方法来实现相同的功能。

示例:

from scapy.layers.l2 import ARP

# 检查 ARP 包的类型
if pkt[ARP].op == 1: # ARP 请求
    # 处理 ARP 请求
elif pkt[ARP].op == 2: # ARP 响应
    # 处理 ARP 响应

建议:

  • 使用最新版本的 Scapy 库。
  • 仔细检查代码,确保属性和方法的名称正确。
  • 参考官方文档,了解库的最新更新和使用方式。
Python Tkinter 错误:AttributeError: 'is_at' - Scapy ARP 包解析问题

原文地址: https://www.cveoy.top/t/topic/jnka 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录