簡體   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