如何将 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 });
我正在开发一个应用程序,用户将在其中使用我的工具,但每次该工具遇到一些数据包时,它都会将 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 });