gpt4 book ai didi

go - 如何使用gopacket解析802.11探测请求帧中的信息元素

转载 作者:行者123 更新时间:2023-12-01 20:27:11 29 4
gpt4 key购买 nike

Gopacket支持解析信标和探测响应帧中的信息元素,如下所示:

for _, layer := range packet.Layers() {
if layer.LayerType() == layers.LayerTypeDot11InformationElement {
dot11info, ok := layer.(*layers.Dot11InformationElement)
}
}

但是gopacket不支持在探测请求帧中解析信息元素。
我只能使用 packet.Layer(layers.LayerTypeDot11MgmtProbeReq).(*layers.Dot11MgmtProbeReq)获取目录和有效负载,并且信息元素在此目录中。

那么,如何在探测请求框架中解析这些信息元素?

最佳答案

我相信你必须写自己。您是否已经尝试过this实现?

解析器如下:

func (pr *capturedRequest) decodeProbeRequestLayer(probeLayer *layers.Dot11MgmtProbeReq) {
var body []byte
body = probeLayer.LayerContents()
for i := uint64(0); i < uint64(len(body)); {
id := layers.Dot11InformationElementID(body[i])
i++
switch id {
case layers.Dot11InformationElementIDSSID:
elemLen := uint64(body[i])
i++
if elemLen > 0 {
pr.SSID = string(body[i : i+elemLen])
i += elemLen
}
break
case layers.Dot11InformationElementIDVendor:
pr.VendorSpecific = body[i+1:]
return
default:
elemLen := uint64(body[i])
i += 1 + elemLen
break
}
}
}

关于go - 如何使用gopacket解析802.11探测请求帧中的信息元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59783521/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com