Ich verwende derzeit die pcap-Bibliothek für C# und fragte mich, ob es eingebaute Funktionen zum Entfernen der IP-Header und der TCP/UDP/ECT-Header gab? Wenn nicht, könnte jemand posten, wie sie das Entfernen solcher Header erreicht haben?Paketprotokollierung mit Pcap für C#
Antwort
Verwenden Sie PacketXLib? Ich habe das schon mal benutzt und fand es leicht genug, damit zu codieren. die Header zu extrahieren ist einfach genug, um nur die wesentlichen Grundlagen der Protokolle zu kennen
public const int ETHERNETLEN = 14; // length of ethernet header
public const int IPLEN = 20; // length of ip header
public const int TCPLEN = 20; // length of tcp header
Angenommen Sie haben die gleiche Bibliothek verwenden ich, kann man dann umgehen nur die Header auf die Rohdaten erhalten
int dataOffset = ETHERNETLEN + IPLEN + TCPLEN;
string rawData = "";
// Throw all the data into a string first up so we can work with it easier
for (int i = dataOffset; i < aPacket.DataSize; i++)
{
byte nByte = (byte)aPacket.DataArray.GetValue(i);
rawData += Convert.ToChar(nByte);
}
Der Code, den ich sehe, wo ich das gemacht habe, ist wahrscheinlich fast ein Jahr alt, also ein bisschen unklar was genau ich tat. Ich habe einige http-Paket-Rekonstruktion tun, wie in this question Ich habe gepostet. Wenn man sich diesen Thread anschaut, war es vor gut einem Jahr, als ich das tat!
Ich bin der Autor von SharpPcap, ein pcap Wrapper/Bibliothek für C#.
Wenn Sie SharpPcap verwenden, bricht SharpPcap das Paket in Datagramme. Sie würden also ein Ethernet-Paket erhalten, das ein IpPaket enthält, das ein Udp-Paket enthält. Wenn Sie nur das UDP-Paket wollte können Sie leicht extrahieren, dass wie:
Packet p = Packet.ParsePacket(rawCapture.LinkLayerType, rawCapture.Data);
var udpPacket = UdpPacket.GetEncapsulated(p);
if(udpPacket != null) { Console.WriteLine("found udp packet '{0}'", udpPacket); }
UdpPacket.GetEncapsulated() durchläuft die Datagramme für das Paket suchen. Dieselbe Vorgehensweise funktioniert für alle Typen, die analysiert werden.
- 1. Pcap-Bibliothek für C# odd Problem
- 2. Null-Lese-Timeout für pcap
- 3. Fehler während der Installation von pcap mit "npm install pcap"
- 4. PCAP Alternativen
- 5. Wie filtert man POST-Anfragen mit pcap?
- 6. Verifizieren von CRC mit Airpcap und pcap
- 7. "tcpdump -w 1.pcap" funktioniert, aber "tcpdump-C 100 -w 1.pcap" - Berechtigung verweigert
- 8. Alternative zu pcap (Linux)
- 9. Pcap Verbindungstyp von Infiniband
- 10. Parsing pcap aus Wireshark Datei mit - Java
- 11. pcap-Funktion: pcap_open() Frage
- 12. Threading und pcap Probleme
- 13. Erstellen einer pcap-Datei
- 14. Suche durch viele pcap-Dateien mit tcpdump
- 15. Pcap Funktionen "undefined reference" haben
- 16. Recursively Filter Verzeichnis von .cap/.pcap Dateien Mit tshark
- 17. Eine pcap-Datei in Python analysieren
- 18. Lesen von pcap-Datei zu Vektor/Array
- 19. Rekonstruieren von Daten von PCAP Sniff
- 20. Die Anzahl der Pakete in einer pcap-Capture-Datei erhalten?
- 21. Mit a.vim für C++
- 22. Command-Line-Flow-basierte PCAP-Datei Viewr-Tools
- 23. Wie stelle ich HTTP-Pakete von Net :: Pcap wieder zusammen?
- 24. Lese eine tcpdump-Datei mit C++
- 25. Gibt es eine Möglichkeit, wireshark .pcap-Dateien in Fiddler anzuzeigen?
- 26. Tool, um eine PCAP-Datei zeitlich zu verschieben?
- 27. Wie zwei tcpdump-Dateien (PCAP-Dateien) verkettet werden
- 28. Wie kann ich die Input Logs verwenden. PCAP (Binär) mit Map Rreduce Hadoop
- 29. Speichern einiger ausgewählter Flüsse in einer separaten pcap Datei mit wireshark
- 30. Komponententest für Kompilierungsfehler mit C++