如何将 Pcap.Net 数据包 Class 对象导出到 .pcap 文件

How do I export Pcap.Net Packet Class Object To .pcap File

我正在开发一个应用程序,用户将在其中使用我的工具,但每次该工具遇到一些数据包时,它都会将 c# 中的数据包 class 作为 .pcap 文件上传到我的站点,以便我可以亲自检查并进行必要的更改。我想知道是否有人知道我实现这个目标的方法。

    public XXXXXCapturer(LivePacketDevice globalDevice) {
        PacketCommunicator globalCommunicator = globalDevice.Open(512, PacketDeviceOpenAttributes.Promiscuous, 1000);

        using (BerkeleyPacketFilter filter = globalCommunicator.CreateFilter("ether host XX:XX:XX:XX:XX:XX"))
        {
            globalCommunicator.SetFilter(filter);
        }
        globalCommunicator.NonBlocking = false;
        globalCommunicator.ReceivePackets(1, HandlePackets);
    }

    private void HandlePackets(Packet packet)
    {
        XXXXXDecoder Decoder = new XXXXXDecoder(packet);
        // Get Packet & Upload
        Info = new XXXXXInfo(Decoder.Data);
    }

在发布这个问题之前,我已经找了好几个小时,但没有找到任何结果,所以在等待有人希望回复这个问题时,我决定深入研究并开始查看 [=11= 的一些代码].那是当我发现静态 class 调用 PcapDumpFile 和一个名为 Dump() 的方法时。这种带有一些参数的方法完成了我在这个问题中的要求。我会留下这个问题,因为我希望有类似问题的其他人可能会得到帮助。

我的Dump()方法用法:

 PacketDumpFile.Dump(System.IO.Directory.GetLogicalDrives()[0] + @"Program Files (x86)\XXXXX\" + "temp.pcap", packet.DataLink.Kind, packet.Length, new List<Packet> { packet });