begin process at 2008 07 25 17:51:02
1 216 413 membres
372 nouveaux aujourd'hui
14 181 membres club

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é: 9 402 / 855

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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


Description

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 :)
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

03 octobre 2007 15:10:04 :
Mise à jour code
  • 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.


Ajouter un commentaire

Pub



Appels d'offres

Animation Flash alimen...
Budget : 6 000€
Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS