我认为您的问题如下:Wireshark 解码数据包,因此当您应用这些过滤器时,数据包已经解码,因此能够访问 wlan.fc.type 字段。
根据我的个人经验和 SharpPcap 的使用,您尝试使用的过滤器是根据字节 [] 计算的,因此您需要更加具体以确保正确应用它。
例如,我一直在使用这个过滤器来达到我的目的。
private const String filteringSV = "(ether[0:4] = 0x010CCD04)";
此外,请记住仅在已打开的设备上设置过滤器。
if (nicToUse != null)
{
try
{
nicToUse.OnPacketArrival -= OnPackectArrivalLive;
nicToUse.OnPacketArrival += OnPackectArrivalLive;
try
{
if (nicToUse.Started)
nicToUse.StopCapture();
if (nicToUse.Opened)
nicToUse.Close();
}
catch (Exception)
{
//no handling, just do it.
}
nicToUse.Open(OpenFlags.Promiscuous|OpenFlags.MaxResponsiveness,10);
nicToUse.Filter = "(ether[0:4] = 0x010CCD04)";
nicToUse.StartCapture();
}
catch (Exception ex)
{
throw new Exception(Resources.SharpPCapPacketsProducer_Start_Error_while_starting_online_capture_, ex);
}
}
希望它有所帮助。