You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Scapy报错AttributeError: module 'scapy.all' has no attribute 'hexraw'?

问题原因及解决方法

错误根源

  • Scapy的scapy.all模块里根本没有hexraw这个函数/属性,你调用了一个不存在的API,所以触发AttributeError。
  • 额外问题:p.show()是用来直接在控制台打印数据包结构的,它的返回值是None,所以你赋值的d其实是空值,就算hexraw存在,传入None也会报错。

正确实现方式

如果想获取数据包的十六进制原始数据,按以下步骤来:

  1. 从sniff返回的PacketList中取出具体的数据包(因为count=1,所以取索引0的元素)
  2. 将数据包转为原始字节,再转成十六进制字符串

修正后的代码:

import scapy.all as scapy

# 捕获1个TCP数据包
packet_list = scapy.sniff(filter='tcp', count=1)
# 获取第一个数据包
target_packet = packet_list[0]
# 转为十六进制原始数据
hex_raw_data = bytes(target_packet).hex()
print(hex_raw_data)

# 如需查看数据包结构,直接调用show()即可,无需赋值
target_packet.show()

内容的提问来源于stack exchange,提问作者user20144486

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:10:30