Könnte jemand eine gute Packet Sniffer Klasse für C++ vorschlagen? Auf der Suche nach einer einfach einfügbaren Klasse, die ich in meinem C++-Programm verwenden kann, nichts Kompliziertes.
Antworten
Zu viele Anzeigen?Sie werden niemals in der Lage sein, den Netzwerkverkehr abzufangen, indem Sie einfach eine Klasse in Ihr Projekt einfügen. Die Paketaufzeichnungsfunktionalität erfordert die Unterstützung des Kernelmodus, daher muss Ihre Anwendung zumindest libpcap/WinPcap erfordern oder installieren, wie Will Dean betonte.
Die meisten modernen Unix-ähnlichen Distributionen enthalten libpcap von Haus aus, in diesem Fall können Sie sich dieses sehr einfache Beispiel ansehen: http://www.tcpdump.org/pcap.htm
Wenn Sie Windows verwenden, sind Sie mehr oder weniger auf sich allein gestellt, obwohl WinPcap Die Programmierung von libpcap ist der von libpcap sehr ähnlich (was nicht überrascht, da es sich um eine Portierung von libpcap auf Win32 handelt). Das SDK finden Sie hier: http://www.winpcap.org/devel.htm
Auf jeden Fall sollten Sie unabhängig vom Betriebssystem wird benötigen Root-/Administrator-Zugriff, um eine Erfassung durchzuführen. Die bloße Verwendung der Bibliothek zur Wiedergabe oder Analyse vorerfasster Daten erfordert natürlich keine besonderen Berechtigungen.
Microsoft Network Monitor verfügt über eine API zur Paketerfassung und -analyse, siehe Der Netmon-Blog für einige grundlegende Informationen.