Frage

Was wäre der einfachste Weg, um rohe Netzwerkpakete senden und empfangen zu können?Muss ich mein eigenes JNI-Wrapping für eine C-API schreiben und nach welcher API suche ich in diesem Fall?

BEARBEITEN:Ich möchte in der Lage sein, das zu tun, was wireshark kann, d. h.Alle eingehenden Pakete auf einer Schnittstelle aufzeichnen und darüber hinaus in der Lage sein, selbst erstellte Pakete zurückzusenden.Und ich möchte es auf einem Mac machen.

War es hilfreich?

Lösung

Wenn Sie mit der Idee beginnen, dass Sie etwas brauchen wie Ein Paket-Sniffer, den Sie sich unbedingt ansehen sollten http://netresearch.ics.uci.edu/kfujii/jpcap/doc/.

Andere Tipps

Raw Socket für Java ist seit langem eine Anfrage für JDK.Siehe die Anfrage Hier.Dort gibt es eine lange Diskussion, in der Sie nach Problemumgehungen und Lösungen suchen können.Ich habe das einmal für einen einfachen PING-Vorgang benötigt, kann mich aber nicht erinnern, wie ich das gelöst habe.Entschuldigung :)

Meine bisher beste Wahl scheint die zu sein BPF API und zum Schreiben eines dünnen JNI-Wrappers

Sie können von reinem Java aus nicht auf Raw-Sockets zugreifen, daher benötigen Sie eine Art Schicht zwischen Ihrem Java-Code und den Netzwerkschnittstellen.

Beachten Sie außerdem, dass der Zugriff auf Raw-Sockets normalerweise nur „Root“-Prozessen zur Verfügung steht, da sonst jeder Benutzer a) den gesamten Datenverkehr abhören und b) gefälschte Pakete generieren könnte.

Anstatt Ihr gesamtes Programm so zu schreiben, dass es als „Root“ ausgeführt werden muss, können Sie die Paketerfassung und -generierung in einem eigenständigen Programm mit einer Art IPC (RMI, Named Pipe, TCP-Socket usw.) zum Austausch durchführen Daten mit Ihrer Java-App.

TINI ist ein Java-Ethernet-Controller, der über Bibliotheken und Klassen für den direkten Zugriff auf Daten von Ethernet-Frames bis hin zu TCP-Streams verfügen kann.Möglicherweise finden Sie dort etwas, das Ihre benötigten Klassen implementiert.Wenn nicht, sollte es Hinweise oder Benutzergruppen geben, die Ihnen einen Vorsprung verschaffen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top