我想在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
克里斯
答案 0 :(得分:1)
您的解剖器可能失败,但Scapy将其隐藏并将该图层解码为Raw()
。
你可以:
packet.payload
是Raw
个实例。conf.debug_dissector = True
。