Ich versuche, einige Netzwerkaufnahmen (PCAP-Format) mit Pcap.net zu manipulieren. Ich öffne die pcap-Datei und die Schaffung der Kipper mit:PcapDotNet und Datalink Typ
OfflinePacketDevice selectedDevice = new OfflinePacketDevice(pcapInFile);
using (PacketCommunicator PcapReader = selectedDevice.Open(655360, PacketDeviceOpenAttributes.Promiscuous, 1000))
{
PacketDumpFile PcapWriter = PcapReader.OpenDump(pcapOutFile);
PcapReader.ReceivePackets(count, PacketDispatcher);
}
Und die PacketDispatcher wäre so etwas wie:
private void PacketDispatcher(Packet packet)
{
// Manipulate the packet
PcapWriter.Dump(packet);
}
alles in Ordnung ist, so weit wie die pcapInFile Datalink Ethernet-Typ ist. Aber ich habe mehrere Captures ohne Ethernet-Layer (Rawip) und ich muss eine neue Ethernet-Schicht bauen. Bei dieser Art von Kappen ist die Datenübertragungs-Typ die gleiche wie die pcapInFile (raw ip) und ich will es ethernet ändern ...
Wenn ich speichern alle manipulierte Pakete in einem IEnumerable und steckt sie mit:
PacketDumpFile.Dump(pcapOutFile, new PcapDataLink(1), Packets.Count(), Packets);
Es funktioniert gut ... Aber das ist nicht sehr hilfreich, wenn Sie mit Dateien von mehreren gigas handeln ...
Jede Idee? Danke!