Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > APIs > IO
IO Vos questions sur les flux d'entrées/sorties, fichiers, traitements de données, protocoles réseau, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/11/2012, 15h28   #1
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
Par défaut Sniffer scanner réseau

bonjour,

je dois réaliser pour mon projet un sniffer et un scanner de réseau en Java. Cependant voilà je n'ai aucune connaissance dans ce domaine par contre je sais programmer en Java.

j'ai fais des recherches sur le web mais quand on maitrise pas un sujet c'est difficile de trouver des réponses.

alors je me tourne vers vous en espérant trouver des réponses. J'aimerais savoir par où commencer et comment je dois m'y prendre pour programmer un sniffer/scanner en Java.

J'espère que j'ai bien exposé mon problème.

Merci à bientôt.
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2012, 17h45   #2
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 128
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 128
Points : 4 064
Points : 4 064
Envoyer un message via MSN à wax78
Pour ce qui est du sniffer, dans mes souvenir il y'avait jPcap qui offrait ce qu'il fallait comme lib java pour faire ce genre de choses.
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/11/2012, 20h32   #3
thelvin
Modérateur
 
Inscription : septembre 2004
Messages : 7 082
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 7 082
Points : 10 304
Points : 10 304
Envoyer un message via Skype™ à thelvin
Ben c'est pas trop un sujet pour débutant, je te confirme.

Mais sinon, le problème n'est sans doute pas le forum dans lequel tu demandes, mais plutôt qu'on sait pas trop quoi te dire.

Java ne propose aucune classe pour sniffer le réseau, point final. Pour faire cela il faudrait donc une bibliothèque JNI qui s'implémente sur les routines de l'OS capables de sniffer le réseau et qui expose ça en Java. Du coup, quel intérêt d'utiliser Java ? Autant utiliser directement le langage de l'OS, et du coup, pourquoi faire son propre sniffer ? Autant utiliser ceux qui existent.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
Partagez vos connaissances, mais aussi comment s'en servir.
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 19/11/2012, 13h01   #4
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
merci à vous deux pour vos réponses.

premièrement, wax78, j'ai fais des recherches avant que tu poste ce message et en effet on peut utiliser la librairie jPcap.

deuxièmement, thelvin, je comprend mieux pourquoi je ne connaissais pas au moins une classe Java qui permet de le faire

le but de ce projet, à mon avis et d'après ce que vous avez dis, c'est d'utiliser le langage Java pour créer une interface et afficher les résultats d'une librairie quelconque afin de montrer qu'on sait utiliser cette librairie.

c'est vrai qu'on peut utiliser des sniffers et scanners déjà fait, d'ailleurs ils sont bien fait, mais je pense que le but n'est pas d'utiliser un logiciel mais de montrer qu'on comprend le fonctionnement.
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 13h10   #5
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
d'après mes recherche on peut utiliser la librairie JPcap qui permet de sniffer le réseau.

je sais pas encore mais je pense que je vais réussir à l'utiliser sinon j'espère trouver de l'aide auprès de vous.

ma question est comment savoir qu'une interface réseau est activé et la quelle choisir pour l'utiliser avec la librairie?

ma question peut paraitre anodine mais excusez mon incompétence dans ce domaine .

j'ai trouvé un tuto qui explique comment récupérer les interfaces réseau d'une machine mais je sais pas lesquelles je peux utiliser
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 14h11   #6
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 128
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 128
Points : 4 064
Points : 4 064
Envoyer un message via MSN à wax78
Tu as un petit tutorial sur le site de jPcap, cela devrait déjà te renseigner.

Par contre quand tu dis :

Citation:
ma question est comment savoir qu'une interface réseau est activé et la quelle choisir pour l'utiliser avec la librairie?
Je ne sais pas ce que tu entends par activé, mais par defaut toutes les interfaces que tu obtiens avec :

Code :
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
devrait l'être et donc être utilisables.

Ensuite pour ouvrir l'interface tu devras faire :

Code :
1
2
3
4
5
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
int index=...;  // set index of the interface that you want to open.
 
//Open an interface with openDevice(NetworkInterface intrface, int snaplen, boolean promics, int to_ms)
JpcapCaptor captor=JpcapCaptor.openDevice(device[index], 65535, false, 20);
En théorie tu devrais savoir quelle interface tu vas utiliser (probablement une interface Ethernet ou celle du wifi).

Regarde ce que getDeviceList() te retourne et tu auras surement une piste.
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/11/2012, 15h56   #7
druzy
Membre confirmé
 
Inscription : novembre 2007
Messages : 243
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 243
Points : 229
Points : 229
Pour sniffer un réseau, il ne suffit pas de vérifier s'il y a "quelqu'un" à chaque adresse ip ? Si c'est le cas, tu n'as pas besoin de librairie externe.
druzy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 16h14   #8
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 128
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 128
Points : 4 064
Points : 4 064
Envoyer un message via MSN à wax78
Tu confonds sniffer et scanner me semble-t-il.

Sniffer : va écouter tout ce qui passe par le reseau (chaque paquets) en vue d'une analyse ou autres.
Scanner : Vérifier si quelques choses réponds (un service, un port, ...).

Pour la scan simple tu pourrais ne pas avoir besoin de libraires en effet, mais dans certains cas tu n'as pas le choix (machine configurée spécialement avec un firewall, il suffit de voir le nombre d'options que fournit un scanner comme nmap par exemple).
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 19h41   #9
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
merci wax78 pour ta réponse.

quand je disais quelle interface active c'est parce que j'ai tester la solution du tuto que j'ai cité auparavant et quand je récupère les interfaces réseau il m'afficher plusieurs

Donc je me demandais laquelle va fonctionner. en effet, mon programme doit permettre à l'utilisateur de choisir une interface réseau avant de commencer à sniffer ou scanner.

je vais lire le tuto que tu m'as conseillé et faire quelques essais afin de pouvoir mieux exposer mon problème .

je te remercie à bientôt.
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 23h33   #10
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
je suis toujours entrain de me documenter sur le sujet et j'aimerai savoir c'est quoi la différence entre Jpcap, WinPcap et jNetPcap?

merci d'avance! à bientôt
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 10h08   #11
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 278
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 278
Points : 32 754
Points : 32 754
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
jpcap est une librairie native permettant d'utiliser libpcap en java
winpcap est le portage windows de libpcap
jnetpcap est aussi une librairie native permettant d'utiliser libpcap en java
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2012, 12h27   #12
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
merci tchize_ pour ta réponse.

je travail sous win7 et j'utilise l'IDE NetBeans. Donc j'ai installé Jpcap et WinPcap et j'ai rajouter le jar de Jpcap dans mon projet sous netBeans (propriété-->librairies-->compile). Cependant, j'ai l'erreur suivante quand je compile mon projet :

Code :
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no jpcap in java.library.path
je ne vois pas d'où viens cette erreur

est ce que quelqu'un sait qu'est ce que je dois rajouter pour corriger cette erreur?

merci à bientôt.
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 13h11   #13
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
j'ai trouvé la solution (ici) à cette erreur mais maintenant j'ai l'erreur suivante :

Code :
1
2
3
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Java\jre7\bin\Jpcap.dll: 
Can't load IA 32-bit .dll on a AMD 64-bit platform
....
quelqu'un peut-il m'aider svp?
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 13h26   #14
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 278
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 278
Points : 32 754
Points : 32 754
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
tu as installé une jpcap 32 bits que tu essaie de charger avec une java 64bit. Tu dois prendre une architecture compatible (à savoir jpcap 64 bits)
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2012, 13h47   #15
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 128
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 128
Points : 4 064
Points : 4 064
Envoyer un message via MSN à wax78
Pour bien faire aussi, il ne faut pas mettre les DLL dans program files. (enfin ca c'est mon avis).

Il faut les laisser dans le répertoire du projet, et dans eclipse (si tu utilise eclipse) tu as un endroit ou spécifier ou trouver les éventuelles DLL.

Dans eclipse :

1) Properties du projets.
2) Java build path
3) onglet Libraries, puis selectionner le dernier element qui doit etre JRE ou JDK que tu ouvres et la tu trouveras "Native library location" ou tu peux specifier cela. Et la normalement ta dll sera chargée.

Mais ce que vient de dire _Tchize reste valable même dans ce cas.
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2012, 18h55   #16
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
merci pour vos réponses!

Citation:
Envoyé par tchize_ Voir le message
tu as installé une jpcap 32 bits que tu essaie de charger avec une java 64bit. Tu dois prendre une architecture compatible (à savoir jpcap 64 bits)
je me doutais que c'est pas la bonne librairie mais je ne trouve pas une jpcap 64 bits. celle que j'ai téléchargé se trouve ici

est ce que je suis sur le bon site?

merci.
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 18h58   #17
thelvin
Modérateur
 
Inscription : septembre 2004
Messages : 7 082
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 7 082
Points : 10 304
Points : 10 304
Envoyer un message via Skype™ à thelvin
Pour JPcap je ne sais pas, mais d'habitude, quand on utilise des JNI, le plus simple c'est d'installer un Java 32 bits et c'est marre.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
Partagez vos connaissances, mais aussi comment s'en servir.
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 19h03   #18
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
Citation:
Envoyé par wax78 Voir le message
Pour bien faire aussi, il ne faut pas mettre les DLL dans program files. (enfin ca c'est mon avis).

Il faut les laisser dans le répertoire du projet, et dans eclipse (si tu utilise eclipse) tu as un endroit ou spécifier ou trouver les éventuelles DLL.
...
j'ai bien chargé le jar et le DLL dans mon projet (sur NetBeans) mais ça marche pas car il arrive pas à compiler un DLL pour une archi 32 bits dans une archi 64 bits.

je déduis qu'il retrouve la librairie mais il y a un problème de compatibilité.

je sais pas où je peux trouver la jpcap 64 bits. j'ai regardé sur le site que tu m'a donné (au début du poste) mais il y a pas de jpcap 64 bits car celle que j'ai téléchargé c'est bien une 32 bits (mais je suis pas sûr ).

je suis confus. si l'un de vous peut me mettre sur un début de piste ça serai super cool.

merci et à bientôt.
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 19h36   #19
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 278
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 278
Points : 32 754
Points : 32 754
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
je crois qu'il n'y a pas de jpcap 64 => autre librairie ou utiliser un java 32 bits.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2012, 22h48   #20
wassim_boy
Nouveau Membre du Club
 
Inscription : décembre 2011
Messages : 83
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 83
Points : 26
Points : 26
merci tchize_ pour ta réponse.

bon je vais arrêter de chercher une jpcap 64 bits. pour java 32 bits il suffit d'installer un JDK 32 bits (même si l'archi c'est du 64 bits)?

je vais essayer en attendant une confirmation de votre part.

merci à bientôt.
wassim_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h11.


 
 
 
 
Partenaires

Hébergement Web