首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharpPcap中的离线包过滤

SharpPcap中的离线包过滤
EN

Stack Overflow用户
提问于 2017-07-13 11:52:16
回答 1查看 854关注 0票数 0

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

下面是我的代码片段。

代码语言:javascript
复制
    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文件中的所有帧。

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

EN

回答 1

Stack Overflow用户

发布于 2017-07-17 13:25:21

发现了问题。过滤时必须考虑vlan。当我使用"vlan和tcp“而不是"tcp”时,它可以工作。更多信息可以在这里找到traffic.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45079826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档