将PTPv2层添加到scapy

时间:2017-10-24 11:42:00

标签: python 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层,确定,成功。但是通过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 - >以太网 - > PTP,所以我的绑定命令必须正确。

不知道错误在哪里。

请帮助我!

THX

克里斯

1 个答案:

答案 0 :(得分:1)

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

你可以:

  • 检查packet.payloadRaw个实例。
  • 设置conf.debug_dissector = True
  • ,尝试查找解剖器中的崩溃情况