gpt4 book ai didi

python - 将 PTPv2 层添加到 scapy

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:25 25 4
gpt4 key购买 nike

我想在 python (v2.7) 中向 scapy (v2.3.3) 添加 PTPv2 层。我将带有 PTP 条目的 ptpv2 类添加到文件/scapy/layers/inet.py 中(因为 PTP 位于第 4 层)。我还将 ptpv2 层绑定(bind)到上层,在我的例子中是以太网。

bind_layers(Ethernet,ptpv2)

通过输入 scapy 命令“ls()”,会列出创建的 ptpv2 图层,好的,成功。但是通过python命令访问该层

for packet in PcapReader('/media/sf_SharedFolder/test.pcap'):
if packet[ptpv2].sequenceId == anything:
# do sth

出现以下错误:

File "/usr/lib/python2.7/dist-packages/scapy/packet.py", line 817, in __getitem__
raise IndexError("Layer [%s] not found" % lname)
IndexError: Layer [ptpv2] not found

Wireshark 文件具有 Frame -> Ethernet -> PTP 层,因此我的绑定(bind)命令必须正确。

不知道错误出在哪里。

请帮助我!

谢谢

克里斯

最佳答案

你的解析器可能失败了,但 Scapy 隐藏了它并将该层解码为 Raw()

你可以:

  • 通过检查 packet.payload 是否为 Raw 实例来检查。
  • 尝试通过设置 conf.debug_dissector = True 来查找解析器中崩溃的原因。

关于python - 将 PTPv2 层添加到 scapy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46909654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com