如何使用wireshark抓到报文radiotap的信息

本文介绍如何通过调整无线网卡模式至Monitor Mode来使用Wireshark正确捕获包含RSSI信息的数据报文。文章首先说明了在Managed Mode下Wireshark无法直接获取到完整的802.11报文及RSSI数据的原因,并提供了具体步骤实现模式转换。

 

本人希望在不修改内核的情况下获得每个数据报文的RSS的大小,查阅资料后得知可以使用wireshark抓取报文,在报文的radiotap头中会有rssi的信息。但是实际操作后发现获取的报文是这个样子的:

查阅资料后发现,当无线网卡不支持或者没有设置为monitor mode时,无线网卡的驱动会自动把802.11 frame 转化为Ethernet frame后给kernel。官方解释为:

If you‘re trying to capture network traffic that‘s not being sent to or from 
the machine running Wireshark or TShark, i.e. traffic between two or more 
other machines on an Ethernet segment, or are interested in 802.11 management 
or control packets, or are interested in radio-layer information about 
packets, you will probably have to capture in "monitor mode". This is 
discussed below.

Without any interaction, capturing on WLAN‘s may capture only user data 
packets with "fake" Ethernet headers. In this case, you won‘t see any 802.11 
management or control packets at all, and the 802.11 packet headers 
are"translated" by the network driver to "fake" Ethernet packet headers.

使用iwconfig命令后发现:

此时无线网卡的模式为managed。因此,我试着去打开无线网卡的monitor mode。查阅资料后,使用命令:

 

sudo ifconfig wlan11 down
sudo iwconfig wlan11 mode monitor
sudo ifconfig wlan11 up

再次运行iwconfig后发现:

此时,网卡的模式已经变为Monitor,在使用wireshark进行抓包,发现也有了radiotap header:

 

转载于:https://www.cnblogs.com/qwblog/p/8744882.html

<think>好的,我现在需要回答用户的问题:如何使用Wireshark捕获GOOSE报文。用户提到自己现在是C#专家,但问题涉及网络抓包,可能需要跨领域的知识。不过用户可能对C#编程有特定需求,比如编写相关代码来辅助捕获或分析报文。 首先,我需要明确GOOSE报文是什么。GOOSE(Generic Object Oriented Substation Event)是用于电力系统自动化中的快速通信协议,基于IEEE 802.1Q(VLAN)和IEEE 802.1p(优先级标记),通常在以太网上传输,使用多播地址。它属于IEC 61850标准的一部分,常用于变电站内的设备通信。 接下来,用户想知道如何用Wireshark抓取这类报文。步骤应包括安装Wireshark、选择合适的网卡、设置捕获过滤器、启动捕获并解析结果。此外,可能需要配置Wireshark的解析器来正确解码GOOSE报文,因为默认情况下可能无法识别。 不过,用户可能更关注的是如何在C#中实现相关功能,比如编写代码来捕获或处理GOOSE报文。虽然Wireshark本身是图形化工具,但用户可能需要程序化方法。这里可能需要使用C#的网络库,如SharpPcap或Pcap.Net,这些库允许在C#中进行网络抓包。 因此,回答需要分为两部分:使用Wireshark的步骤和可能的C#代码示例。但用户明确问题是如何用Wireshark抓取,所以重点应放在Wireshark操作上,但也可以补充C#代码作为扩展。 接下来,我需要详细列出步骤: 1. 安装Wireshark并确保有权限捕获网络数据。 2. 选择正确的网络接口,特别是当目标设备在特定VLAN时,可能需要配置混杂模式。 3. 设置捕获过滤器,例如捕获特定以太网类型(0x88B8或0x88B9)或目标MAC地址(如01-0C-CD-01-00-00到01-0C-CD-01-01-FF)。 4. 开始捕获并分析结果,可能需要安装IEC 61850的解析插件,如Wireshark的61850协议支持。 5. 解码后的GOOSE报文结构,包括数据集、状态号等。 对于C#部分,可以展示如何使用SharpPcap库来捕获特定类型的以太网帧,并解析GOOSE报文。例如,初始化设备、设置过滤器、处理捕获的数据包等。 最后,根据用户的要求,生成相关问题,这些问题应围绕GOOSE协议、Wireshark使用、C#网络编程等。 需要注意的问题:用户的问题可能涉及到跨领域知识,但需确保回答中的C#代码正确,并且步骤清晰。此外,要确认GOOSE报文的具体协议细节是否正确,比如以太网类型是否正确,以及可能的过滤条件。</think><< 要使用Wireshark捕获GOOSE(Generic Object Oriented Substation Event)报文,需遵循以下步骤: ### **步骤1:安装Wireshark** 从[Wireshark官网](https://www.wireshark.org/)下载并安装,确保安装时勾选所有依赖组件(如Npcap)。 ### **步骤2:选择正确的网络接口** 1. 打开Wireshark,选择与目标设备连接的物理或虚拟网卡。 2. 若GOOSE报文通过VLAN传输,需启用网卡的混杂模式(`Capture > Options > 勾选网卡的混杂模式`)。 ### **步骤3:设置捕获过滤器** GOOSE报文基于以太网协议,使用固定的以太网类型值: - **普通GOOSE**:以太网类型 `0x88B8` - **带安全标签的GOOSE**:以太网类型 `0x88B9` 在捕获过滤器中输入以下内容: ```plaintext ether proto 0x88b8 || ether proto 0x88b9 ``` 或按目标MAC地址过滤(GOOSE通常使用多播MAC地址范围 `01-0C-CD-01-00-00` 至 `01-0C-CD-01-01-FF`): ```plaintext ether dst host 01:0c:cd:01:00:00 ``` ### **步骤4:启动捕获并触发GOOSE报文** 点击“Start”开始捕获,并触发目标设备发送GOOSE报文(例如模拟保护装置动作)。 ### **步骤5:解析GOOSE报文** 1. Wireshark默认支持IEC 61850协议解析。 2. 在Packet Details面板中展开 `IEC 61850 GOOSE` 字段,可查看报文内容(如数据集、状态号、时间戳等)。 --- ### **C#代码示例(辅助分析GOOSE报文)** 若需通过C#解析已捕获的GOOSE报文(假设已保存为`.pcap`文件): ```csharp using PacketDotNet; using SharpPcap; using SharpPcap.LibPcap; public void AnalyzeGoosePackets(string pcapFilePath) { using var device = new CaptureFileReaderDevice(pcapFilePath); device.Open(); RawCapture packet; while ((packet = device.GetNextPacket()) != null) { var rawPacket = Packet.ParsePacket(packet.LinkLayerType, packet.Data); var ethernetPacket = rawPacket.Extract<EthernetPacket>(); if (ethernetPacket.Type == EthernetPacketType.ApplyEthType(EthernetType.Goose)) { // 提取GOOSE负载(需进一步解析ASN.1编码) byte[] goosePayload = ethernetPacket.PayloadData; Console.WriteLine($"GOOSE报文捕获,长度:{goosePayload.Length}"); } } } ``` ### **注意事项** 1. **权限问题**:在Windows需以管理员权限运行Wireshark。 2. **VLAN标签**:若GOOSE报文包含VLAN标签,需在Wireshark中启用`VLAN`解析(默认已支持)。 3. **实时性**:GOOSE报文通常为毫秒级实时通信,需确保捕获设备性能足够。 --- **原因解释** GOOSE报文是电力自动化系统(IEC 61850标准)中用于快速传输状态变化的协议,基于二层以太网协议。其依赖固定的以太网类型值(0x88B8/0x88B9)和多播MAC地址,因此可通过过滤这些特征精准捕获。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值