IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[Réseaux] Comment faire un sniffer en JAVA ?


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut [Réseaux] Comment faire un sniffer en JAVA ?
    Bonjour !

    Je me demande comment faire en java pour sniffer le réseau; je suis débutant en la matière. Existe t il un lib spécifique pour cela ?

    Merci de votre aide

  2. #2
    Membre confirmé Avatar de calogerogigante
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Points : 497
    Points
    497
    Par défaut
    Je relance cette question levée par Alec6 pour savoir s'il est possible de faire un petit sniffer simple en JAVA...

    Je suis en train d'étudier un cours de réseau, et j'aimerais faire le lien entre ce cours et le langage Java, en essayant de mettre au point un petit programme le plus simple possible qui attrape toutes les trames.

    Mais est-ce que la possibilité de capturer toutes les trames qui arrivent à la carte réseau d'un PC est accessible à Java ?

    Ou faut-il plutôt utiliser un langage proche de la machine (comme le langage C) pour ça ?

    Merci d'avance pour ceux qui ont des infos sérieuses à partager sur ce sujet...

  3. #3
    Membre actif Avatar de xxaragornxx
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 253
    Points
    253
    Par défaut
    J'ai trouvé ça, mais je n'ai pas le temps de regarder ce qu'il fait exactement, comment et quel est le champ d'action:

    http://jpcap.sourceforge.net/

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Sinon, il y a la JSocket Wrench library qui se trouve ici

    Un sniffer est fourni.

    La librairie est assez bien faite.

  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Il existe aussi jpcap, cf article ici : http://www.progx.org/article/Java/13
    Romain Guy
    Android - Mon livre - Mon blog

  6. #6
    Membre actif Avatar de xxaragornxx
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par Gfx
    Il existe aussi jpcap, cf article ici : http://www.progx.org/article/Java/13
    Flagrant délit de non lecture totale de thread !

  7. #7
    Membre confirmé Avatar de calogerogigante
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Points : 497
    Points
    497
    Par défaut
    Merci pour vos suggestions... Je vais étudier ces projets...

    Et commencer à travailler sur mon petit utilitaire réseau, en parallèle avec mon cours !! ;-)

    Merci à tous en tous cas...

    (Quand j'aurai un truc présentable, je le mettrais dans la partie source...)

  8. #8
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Pour la culture, Java utilise les couches les plus hautes du réseau : TCP et UDP. A partir de la, il y a des librairies qui manipulent tout ce qui est au-dessus (FTP, SSL, HTTP, RTP...) en utilisant TCP et UDP.

    Java délègue tout ce qui est inférieur (IP, couche réseau local) à l'OS et ses propres librairies. Pour utiliser ces librairies OS, il faut donc une librairie Java couplée à du C/C++, dépendante de l'OS et donc non fournie avec la librairie standard.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Membre confirmé Avatar de calogerogigante
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Points : 497
    Points
    497
    Par défaut
    Java délègue tout ce qui est inférieur (IP, couche réseau local) à l'OS et ses propres librairies. Pour utiliser ces librairies OS, il faut donc une librairie Java couplée à du C/C++, dépendante de l'OS et donc non fournie avec la librairie standard.
    Je m'en doutais !!! Dois-je donc conclure qu'un programme JAVA "pur" ne peut pas tout attraper sur l'interface réseau du PC ?

    C'est pas grave, je vais me contenter d'abord de faire un petit utilitaire simple pour utiliser le réseau, avec les outils fournis dans le package java.net.

    Merci pour ces précisions...
    ;-)

  10. #10
    Membre régulier

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Points : 75
    Points
    75
    Par défaut
    Je pense que se serais plus éducatif de partir de la couche physique. C'est à dire en utilisant un InputStream relié à un port physique par exemple le port série (il faut une librairie externe pour y accèder). Et faire mettre en place les différentes couches du modèle OSI par les élèves.

    Sinon il y a la classe DatagramSocket dans le package java.net qui permet de récupérer les paquets IP, mettre en place un protocole comme TCP serait un excellent TP.

    Attention, j'ai un mauvais souvenir d'un TP programation de réseau où on nous avait livré une application non documentée et on devait la modifier. Je pense qu'il est important si du code est fournit aux élèves qu'une javadoc complète sois livrée avec.

    Bonne chance !

  11. #11
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    DatagramSocket permet d'utiliser UDP, pas IP ! Java ne permet pas de manipuler la couche IP, et je pense qu'elle est déléguée à l'OS.

    Par exemple, il est impossible de configurer une interface réseau, les tables de routage, de lancer une requete ARP, de mettre en place un NAT, ... par des appels de méthodes Java.

    Par contre, il est possible d'écouter un port en mode datagramme ou connecté, de résoudre un nom d'hote, d'établir une connexion TCP, ... par des appels Java, car cela fait partie de la couche Transport.

    [edit]Concernant le codage des couches OSI en TP, j'ai peur que tu ne t'attaques à trop gros. TCP, en version très simplifiée, demanderait quand meme quelques milliers de lignes de code, et une expérience béton en programmation.

    [edit2]Concernant la documentation, je renchéris cent fois ! Hélas le langage des manuels C n'est qu'un dialecte barbare que la javadoc a réussi à enrichir un petit peu. Toujours est il que lire une doc de programmation est un art.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  12. #12
    Membre régulier

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Points : 75
    Points
    75
    Par défaut
    Biensur je conseillais à calogerogigante, de refaire un modèle ultra simplifié du modèle OSI ou de TCP.

    Sinon désolé pour l'erreur d'inculte, je pensais que l'udp ne contenait pas de réel protocole et permettait d'avoir accès à la couche juste au dessus d'IP. Ce qui fait qu'il aurait pu refaire pas trop difficilement une version simplifiés de TCP à partir de java.

  13. #13
    Membre confirmé Avatar de calogerogigante
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Points : 497
    Points
    497
    Par défaut
    Disons que mon objectif premier n'est pas de ré-inventer la roue, mais d'apprendre d'abord à utiliser les outils existant déjà dans JAVA.net... (Sans utiliser, si possible, de libraires externes...) Cela dit, je pense que je ferais mieux de d'abord éplucher tous les tutoriels qu'on peut trouver sur le net, avant d'attaquer l'implémentation d'un sniffer qui me semble être un peu difficile encore pour l'instant...

    Mais est-ce que je me trompe ? : mais il me semble que je n'ai vu aucun didacticiel sur JAVA et les réseaux, dans le site de Developpez.com ?

    :-(

  14. #14
    Membre régulier

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Points : 75
    Points
    75
    Par défaut
    Tu peux te référer au chapitre 15 du livre "think in Java" disponible dans la rubrique tutorial du site.

  15. #15
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 844
    Points : 22 857
    Points
    22 857
    Billets dans le blog
    51
    Par défaut
    [HS]
    Et faire mettre en place les différentes couches du modèle OSI par les élèves.
    Vi, pendant mes 6 ans de fac j'ai toujours fortement apprecie ce sentiment bizarre de me faire exploiter gratuitement pour la plus grande gloire d'autrui.
    Passe encore pour les TP et TD qui sont necessaires a la comprehension des cours, mais quand les enseignants proposent des stages et autres projets dans la ligne droite directe de leurs projets de recherche......
    Et encore c'etait bien pire du cote des DEA dont la salle des machines, se trouvait directement dans le labo d'info (= esclaves serviables a domicile ).
    [/HS]
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  16. #16
    Membre régulier

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Points : 75
    Points
    75
    Par défaut
    [HS]
    Bien que cette impression est peut être vraie (même généralement vérifiée), c'est ces projets qui m'ont le plus intéressés pendant mes études :
    - Sujet motivant : "recherche"
    - Intéret : le projet risque d'être réutilisé plus tard et non mis dans un placard
    - Moyen : généralement, on peut utiliser les ressources du labo (pour des projet plutot matériel)

    Je ne comprend pas où tu vois des problèmes, si c'est le coté exploiteur, de toute façon une formation universitaire généralement c'est non rénuméré. Donc quitte à faire des choses, je préfère faire des choses plutôt utile.[/HS]

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par bouye
    [HS]
    Et faire mettre en place les différentes couches du modèle OSI par les élèves.
    Vi, pendant mes 6 ans de fac j'ai toujours fortement apprecie ce sentiment bizarre de me faire exploiter gratuitement pour la plus grande gloire d'autrui.
    Passe encore pour les TP et TD qui sont necessaires a la comprehension des cours, mais quand les enseignants proposent des stages et autres projets dans la ligne droite directe de leurs projets de recherche......
    Et encore c'etait bien pire du cote des DEA dont la salle des machines, se trouvait directement dans le labo d'info (= esclaves serviables a domicile ).
    [/HS]
    Etant chercheur, je peux t'assurer que j'apprécie fortement la présence des esclaves serviables à domicile

  18. #18
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 844
    Points : 22 857
    Points
    22 857
    Billets dans le blog
    51
    Par défaut
    Je n'en doute pas : c'etait aussi le cas de mes profs
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Comment faire du publipostage en java?
    Par nam90 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 27/04/2009, 15h26
  2. [2.3.1] Comment faire un dataset en java
    Par peuplier dans le forum BIRT
    Réponses: 4
    Dernier message: 30/01/2009, 14h44
  3. Comment faire un groupbox en Java?
    Par pitbul44 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 05/03/2007, 10h11
  4. Creer un partage réseaux, comment faire?
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/01/2005, 15h11
  5. [Réseaux] Comment faire un Net Use en Delphi ?
    Par Spart64 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 28/04/2004, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo