Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[.NET2] WINPCAP WRAPPER


Information sur la source

Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous : winpcap, packet, capture Niveau : Expert Date de création : 24/12/2006 Date de mise à jour : 03/10/2007 15:10:04 Vu / téléchargé: 11 825 / 1 011

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Ce wrapper de WinPcap fait parti d'un de mes projets professionnels, cela faisait un bout de temps que je le trainais sur mon disque.
Comme c'est noel je me suis décidé à partager ce petit cadeau :)

Vous devez installer le driver WinPcap auparavant: http://www.winpcap.org/ (peut importe la version,3 ou 4 beta du driver fonctionne correctement)
Si vous recherchez la doc du driver elle se trouve ici http://www.winpcap.org/devel.htm
Dans la solution se trouve un dossier Public, ces classes sont extraitent de JPcap une librairie Java exploitant WinPcap http://sourceforge.net/projects/jpcap  (et oui je n'invente rien).

J'ai également joint un fichier dump.txt que j'ai capturé avec cette source. Vous pouvez le visualiser dans la partie Dump -> Ouvrir.

La source est commentée mais sans plus, je me suis beaucoup inspiré des exmples fournis dans la doc de WinPcap.


Apercu de la classe WinPcapWrapper:

-Evénements:
--InnerMessage //Evénement pour les messages d'erreur internes.
--PacketArrival //Evénement d'arrivée d'un paquet.
--EndCapture //Evénement de fin de capture d'un paquet.
--StatisticsPackets //Evénement où sont recu les statistiques.

-Propriétés:
--DeviceHandle //Obtient le handle du matériel branché.
--Mode //Mode de capture du driver.
--IsEnabledDump //Indique si un dump sur la capture est ouvert.
--DumpHandle //Obtient le handle du dump.

-Méthodes publiques:
--GetDevices() //Obtient la liste des matériels réseaux présent.
--OpenDevice(PcapDevice device) //Ouverture d'un handle sur le matériel.
--OpenDevice(PcapDevice device, bool promisc) //Ouverture d'un handle sur le matériel.
--OpenDevice(PcapDevice device, bool promisc, int timeout) //Ouverture d'un handle sur le matériel.
--CloseDevice() //Libère le handle tenu sur le matériel.
--CloseDump() //Libère le handle tenu sur le fichier de dump.
--StartCapture() //Démarre la capture.
--StartCapture(string filter) //Démarre la capture en mettant un filtrage des paquets à capturer. (similaire à la méthode SetFilter(string filter)
--StartCapture(int packetcount) //Démarre la capture en se limitant à capturer un certains nombre de paquets.
--StartCapture(string filter, int packetcount) //Reprend les 2 méthodes ci-dessus.
--SetFilter(string filter) //Compile au niveau kernel une expression de filtre et associe le filtre au matériel.
--StopCapture() //Arrête la capture.
--OpenDump(string filename) //Ouverture d'un handle pour un dump de la capture.
--DumpPacket(Packet packet) //Ecriture d'un paquet dans le fichier dump.
--ReadDump(string filename) //Lecture d'un fichier de dump.

-Méthodes privées:
--WaitForStop() //Méthode bloquante sur le processus de capture tant que celui-ci n'est pas terminée ou arrêtée.
--CapturePacketLoop() //Méthode exécutant les procédures du processus de capture.
--GetNextPacket(out Packet packet) //Récupère le paquet suivant capturé.
--GetNextPacketOffline(IntPtr p, out Packet packet) //Récupère le paquet suivant capturé en mode dump (offline).
--SetMode(PcapMode value) //Applique un mode de capture supporté par le driver.
--InvokePacketArrivalEvent(Packet packet) //Méthode traitant l'arrivée d'un paquet suivant son mode de capture.
--InvokeEndCaptureEvent(DateTime date, bool error) //Méthode traitant la fin de réception d'un paquet.
--GetDatalink() //Récupère la couche réseau.
--GetErr(string prefix) //Traduit les erreurs internes de WinPcap.

-Apercu des autres classes
--WinPcapNative //Classe définissant les méthodes, structures, constantes du mode utilisateur du driver WinPcap (wpcap.dll).
--PcapHeader //Classe fournissant les données d'en-tête d'un paquet (wrapper de la structure pcap_pkhdr). Non héritable.
--PcapDevice //Classe fournissant les données sur un matériel réseau. Non héritable.
--EndCaptureEventArgs //Classe fournissant les données pour l'événement EndCapture.
--InnerMessageEventArgs //Classe fournissant les données pour l'événement InnerMessage.
--PacketArrivalEventArgs //Classe fournissant les données pour l'événement PacketArrival.
--StatisticsEventArgs //Classe fournissant les données pour l'événement StatisticsPackets.
 

Conclusion

Voila....
J'attend vos critiques, notes, etc....

Bon dév à tous :)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

03 octobre 2007 15:10:04 :
Mise à jour code

Commentaires et avis

signaler à un administrateur
Commentaire de ThaNerd le 27/08/2007 00:55:00

Excellent travail... J'ai quelques bugs à l'utilisation, mais j'ignore si ces bugs sont issus de la conjonction Vista + WinPcap 4.0 ou si ça vient du code... Un seul petit manque : une doc un peu plus prolixe...

signaler à un administrateur
Commentaire de bilinf23 le 19/11/2007 15:24:08

Excellent travail félicitation
je travail sur les captures et les détections d'intrusion sur les réseaux AD HOC sans fil.
Quand j'ai essayé votre application sa marche bien mais quand je select le capture pour la carte sans fil aucun affichage é aucune capture , je veux savoir c'est quoi le problème exacte et aussi comment détecte si c'est une lecture ou bien écriture sur le disque  MERCI .

signaler à un administrateur
Commentaire de gmanouvrier le 10/01/2008 10:34:12 9/10

Top,

Je m'en sert pour analyser le traffic http sur mon réseau (test de capture avec un filtre "ether port 80" ou "tcp port 80").
La récupération des IP source et destination est elle implémenté?
Si oui, en 2 mots : Comment?

;) Je n'est pas eu encore le temps de tout regarder.


signaler à un administrateur
Commentaire de babass123 le 04/05/2009 15:22:45 9/10

Un travail fort bien réussi.

Je l'utilise pour créer un sniffer un peu perfectionné (avec renvoi de paquet en fonction de règles établies).

Pour moi la seule méthode qui manque est une méthode d'émission de paquet (j'ai vu que les fonctions de winpcap nécessaires étaient importées) je vais donc la rajouter au code mais sinon rien à dire, c'est un bonheur d'utiliser la classe Packet ^^.

Juste peut être un petit problème (enfin je sais pas si ça vient pas de mon code mais j'arrive de tps en tps a tomber sur un écran bleu avec une erreur IRQ)


Merci pour le post ;)

signaler à un administrateur
Commentaire de Willi le 05/05/2009 20:54:56 administrateur CS

J'avoue ne pas avoir prêter attention aux fonctions winpcap d'émission de paquet voila pourquoi je ne l'ai est pas utilisé.
Pour l'écran je n'en ai jamais levé :).

signaler à un administrateur
Commentaire de babass123 le 05/05/2009 21:36:05

Je viens aussi d'implémenter la classe IP6Packet (pff c'est lourd à faire).

Sinon pour les erreurs IRQ j'arrive a en avoir autant que je veux ce soir. As tu déjà utiliser plusieurs LibWinPcap en parallèle? Personnellement j'ai plusieurs threads qui tournent (un pour chaque interface) et c'est au moment ou je les désactive que ça plante.(en général quand je rapproche activation et désactivation).

J'ai aussi réussi à lever une exception AccesViolationException lors de l'utilisation de la méthode StopCapture de la classe LibWinPcap. Pourtant le paramètre en entrée de pcap_close (c'est la que ça bloque précisément) semble correct...

Je vais y réfléchir et voir ce que ça donne.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Capture d'une image via un webcam, sans utiliser TWAIN [ par Naze ] Hello!Est-ce que quelqu'un connait une méthode SIMPLE (en c#) pour capturer une image via une webcam (du style Video for Windows)? j'ai déjà trouvé pa Capture image avec webcam en c# [ par fabialf ] Quelqu'un aurait-il le code de base pour faire une simple photo avec une webcam en c#.j'utilise la dll "DirectX.Capture" Capture d'Ecran [ par fdouieb ] Bonjour.J'utilise Visual Studio .Net 2003Je voudrais s'avoir s'il y a une possibilité de faire des captures d'écran automatique (que je sauvegarderai Capture d'Ecran [ par fdouieb ] Bonjour,a l'adresse suivante :http://www.csharpfr.com/forum.v2.aspx?ID=260557il y a la possibilité de faire des captures d'ecran.cela fonctionne bien Pilotage Scanner et/ou Adobe Capture [ par lawraC ] Bon, je sais que la question va en effrayer plus d'un et/ou plus d'une, mais voilà ce que j'aimerais faire. Un service utilise Adobe Capture pour tran Service Windows [ par edokt ] Bonjour j'ai creé un service windows en C# Est ce que c'est  possible de creer un packet d'installation qui install ce service ? Je veu Webcam en C# ? [ par mictif ] bonjour, Désolé je ne savez pas vraiment ou posté alors j'ai mis mon message ici ! J'aimerais faire une apli de visio conference (son interdire la capture d'écran sous Windows [ par vladam ] Bonjour,  Par mesure de sécurité, et afin de protéger des information contre l'impression,dans un logiciel, je dois interdire la c Comment faire une capture exclusive des évenements souris (l'évenement de la roulette) [ par MPousse ] Bonjour, j'ai un problème avec l'évenement de la roulette que j'arrive à utiliser dans mon control mais qui est également pass&#2 capture d'image avec WIA [ par Draven ] Bonjour,Alors voila mon problème:J'ai une webcam ou je récupere le flux avec la librairie de microsoft WIA.Et je voudrais faire une capture


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.