あなたの問題は次のとおりだと思います: 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);
}
}
それが役に立ったことを願っています。