SharpPcap 中的离线数据包过滤

Posted

技术标签:

【中文标题】SharpPcap 中的离线数据包过滤【英文标题】:Offline packet filtering in SharpPcap 【发布时间】:2017-12-18 04:32:00 【问题描述】:

我正在尝试使用 SharpPcap 从 .cap 文件中离线捕获数据包。 我打算根据过滤器捕获这些数据包。

以下是我的代码 sn-p。

    private static void device_PcapOnPacketArrival(object sender, CaptureEventArgs e)
                
        System.Console.WriteLine(e.Packet.LinkLayerType);
    

    static void ParseLogFile(string l_FileName)
    
        CaptureFileReaderDevice l_Parser = new CaptureFileReaderDevice(l_FileName);

        l_Parser.Open();
        string l_filter = "tcp";
        string ErrMsg;
        PcapDevice.CheckFilter(l_filter, out ErrMsg);
        l_Parser.Filter = l_filter;
        System.Console.WriteLine("ErrMsg: " + ErrMsg);

        //l_Parser.OnPacketArrival += device_PcapOnPacketArrival;
        //l_Parser.Capture();

        SharpPcap.RawCapture pac;
        while ((pac = l_Parser.GetNextPacket()) != null)
        
            //Prints the time and length of each received packet
            System.Console.WriteLine(BitConverter.ToString(pac.Data));
        
        l_Parser.Close();
    


    public static void Main() 

        ParseLogFile(@"Sample.cap");
        System.Console.WriteLine("THE END");

    

当我将过滤器设置为“tcp”时,我看不到控制台上记录了任何帧,但我可以在 wireshark 上看到它们。

相反,如果我将过滤器设置为“”,我可以在控制台上看到 .cap 文件中的所有帧。

离线模式是否支持包过滤?如果支持,那么我的过滤器有什么问题吗?

【问题讨论】:

嗨,巴里。您是否尝试过 SharpPcap 源代码发布中的过滤器示例?您能否验证它们是否按原样为您正常工作,以及何时修改它们以仅在 tcp 上过滤?这将为我们提供一个具有已知工作代码的数据点。 是的,离线代码支持过滤。 嗨,克里斯,我尝试使用来自 tcpdump.org/manpages/pcap-filter.7.html 的过滤器示例。只有“arp”过滤器正在处理我的捕获文件。当我尝试在标准捕获上运行这些过滤器时,它们工作正常。我觉得我的捕获文件有问题。 【参考方案1】:

发现问题。过滤时必须考虑vlan。 当我使用“vlan and tcp”而不是“tcp”时它可以工作。 更多信息可以在这里找到http://www.christian-rossow.de/articles/tcpdump_filter_mixed_tagged_and_untagged_VLAN_traffic.php

【讨论】:

啊,所以你的流量也被vlan标记了?有趣的是需要 vlan,但我想如果您希望能够在*** vlan 与非 vlan tcp 流量上进行过滤,这是有道理的。

以上是关于SharpPcap 中的离线数据包过滤的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 c# 过滤掉 syn 请求数据包?

如何制作windows server 2012的离线补丁升级包

如何更新 Visual Studio 2017 的离线安装包

如何使用 SharpPcap 捕获 HTTP 数据包

Visual Studio 2019 离线安装包

百度地图离线导航要怎样使用?