簡體   English   中英

Scapy-計算數據包中的層數。

[英]Scapy - Counting the number of layers in a packet.

我正在嘗試計算信標幀中的元素層數。 我想遍歷所有圖層,直到到達最后一層。 假設我已將此數據包存儲在變量pkt

>>> pkt.summary()
    "RadioTap / 802.11 Management 8L 34:bf:90:4a:bb:57 > ff:ff:ff:ff:ff:ff / Dot11Beacon / SSID='unknown' / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt"

數據包中有13個Dot11Elt層。 為了從所有這些層中提取信息,我需要遍歷所有這些層。 我試圖做到這一點:

eltlayers = pkt.getlayer(Dot11Elt)
for layer in len(eltlayers):  # problem lies here
    print layer[layer].ID     # This is field in Elt Layer 

但是len給我的是原始有效載荷的長度,而不是層數。 問題是如何在數據包層之間循環,還是有其他方法獲取層數?

您可以像這樣提取Dot11Elt層:

pkt_elt = pkt[Dot11Elt]
while isinstance(pkt_elt, Dot11Elt):
    print "tag id = %d" % pkt_elt.ID
    pkt_elt = pkt_elt.payload

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM