我正在尝试计算信标帧中的元素层数。我想遍历所有图层,直到到达最后一层。假设我已将此数据包存储在变量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
给了我Raw负载的长度,而不是层数。问题是如何在数据包层之间循环,还是有其他方法获取层数?
答案 0 :(得分:0)
您可以像这样提取Dot11Elt层:
pkt_elt = pkt[Dot11Elt]
while isinstance(pkt_elt, Dot11Elt):
print "tag id = %d" % pkt_elt.ID
pkt_elt = pkt_elt.payload