[英]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.