有没有办法从PcapNG跟踪文件中提取WiFi协议类型?

时间:2015-03-30 06:42:50

标签: python wifi wireshark 802.11 pcap-ng

我正在构建一个PcapNG解析器(在Python中)来分析WiFi数据包 我希望能够显示链接类型(例如,协议变体:802.11b,802.11a,802.11g或802.11n)。

然而,阅读PcapNG format definition我只看到以下内容:

  • LINKTYPE_IEEE802_11 105 IEEE 802.11(无线)
  • LINKTYPE_IEEE802_11_RADIO 127 802.11 plus BSD无线电标题

有没有办法从PcapNG跟踪文件中提取WiFi协议类型?

1 个答案:

答案 0 :(得分:0)

如果捕获数据包的接口的链路层头类型为LINKTYPE_IEEE802_11,否则无法获得协议变体。

如果捕获数据包的接口的链路层头类型是LINKTYPE_IEEE802_11_RADIOTAP(是的,这是正确的名称; wiretap.org pcap-NG规范中的链路层头类型列表已过期,最新列表为the tcpdump.org Link-Layer Header Types page),然后数据包以radiotap header开头,提供有关数据包的各种元数据。

如果radiotap标头包含Channel字段,那么从那里的信息中,您可以确定有关协议变体的一些信息:

  • “5 GHz频谱频道”+“OFDM频道”= 802.11a;
  • “2 GHz频谱频道”+“CCK频道”= 802.11b;
  • “2 GHz频谱频道”+“OFDM频道”= 802.11g;
  • “2 GHz频谱频道”+“动态CCK-OFDM频道”= 802.11g;

(两种版本的802.11g之间的差异表明同一频道上是否也可能存在802.11b流量 - 这就是“动态CCK-OFDM频道”所指示的内容。

然而,如果存在MCS字段,则为802.11n,而不是其他任何类型,如果存在VHT字段,则为802.11ac。

可能还有一个XChannel字段,可以类似于Channel字段进行解释,但它也包含一些802.11n信息。