Question

Quel serait le moyen le plus simple de pouvoir envoyer et recevoir des paquets réseau bruts.Dois-je écrire mon propre emballage JNI d'une API c, et dans ce cas, quelle API je recherche ?

MODIFIER:Je veux pouvoir faire ce que fait Wireshark, c'est-à-direenregistrer tous les paquets entrants sur une interface et pouvoir en outre renvoyer mes propres paquets créés.Et je veux le faire sur un Mac.

Était-ce utile?

La solution

Si tu commences avec l'idée que tu as besoin de quelque chose comme un renifleur de paquets, vous voudrez regarder http://netresearch.ics.uci.edu/kfujii/jpcap/doc/.

Autres conseils

Raw Socket for Java est une demande de JDK depuis très longtemps.Voir la demande ici.Il y a une longue discussion là-bas où vous pouvez rechercher des solutions de contournement et des solutions.Une fois, j'en ai eu besoin pour une simple opération PING, mais je ne me souviens pas comment j'ai résolu ce problème.Désolé :)

Mon meilleur pari jusqu'à présent semble être le FBP api et pour écrire un mince wrapper JNI

Vous ne pouvez pas accéder aux sockets bruts à partir de Java pur, vous aurez donc besoin d'une sorte de couche entre votre code Java et les interfaces réseau.

Notez également que l'accès aux sockets bruts n'est normalement disponible que pour les processus "root", car sinon n'importe quel utilisateur pourrait à la fois a) détecter tout le trafic et b) générer des paquets usurpés.

Plutôt que d'écrire l'intégralité de votre programme pour qu'il doive s'exécuter en tant que "root", vous pourriez envisager de faire en sorte que la capture et la génération des paquets soient effectuées dans un programme autonome avec une sorte d'IPC (RMI, canal nommé, socket TCP, etc.) pour échanger le données avec votre application Java.

TINI est un contrôleur Ethernet Java, qui peut avoir des bibliothèques et des classes pour accéder directement aux données des trames Ethernet vers les flux TCP.Vous pourrez peut-être y trouver quelque chose qui implémente les cours dont vous avez besoin.Sinon, il devrait y avoir des pointeurs ou des groupes d’utilisateurs qui vous donneront une longueur d’avance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top