繁体   English   中英

将 PTPv2 层添加到 scapy

[英]Adding PTPv2 layer to scapy

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

bind_layers(Ethernet,ptpv2)

通过键入 scapy 命令“ls()”,列出了创建的 ptpv2 层,ok,成功。 但是通过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,所以我的绑定命令必须是正确的。

不知道错误在哪里。

请帮助我!

谢谢

克里斯

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

你可以:

  • 通过检查packet.payload是一个Raw实例来检查。
  • 尝试通过设置conf.debug_dissector = True来查找解剖器中崩溃的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM