2009-09-04 9 views
3

Je veux écrire un programme à partir de zéro pour voir l'activité de sockets, ce qu'ils envoient, ce qu'ils reçoivent, etc. I ne veulent pas utiliser une bibliothèque parce que c'est plus à des fins académiques qu'autre chose.Comment surveiller l'activité Sockets sur un ordinateur?

Où dois-je commencer? Pour être clair: mon programme ne se connectera à rien ou ne créera aucune socket, il veut juste écouter l'activité dans un ordinateur. Toutes les réflexions (dans n'importe quel système d'exploitation) sur les points de départ seront appréciées.

Merci d'avance.

Répondre

2

Jetez un oeil à libpcap/WinPcap.

+1

Ce serait ma suggestion à. Notez que sous les connexions sans fil Windows ne sont pas facilement capturés, voir Q-16 de http://www.winpcap.org/misc/faq.htm, et http://www.cacetech.com/products/airpcap.html –

+0

Plus que d'utiliser une bibliothèque, je veux savoir si quelqu'un a la connaissance des étapes de bas niveau pour construire quelque chose comme ça. –

+0

Ensuite, lisez le code source de libcap et voyez comment cela fonctionne. – bortzmeyer

2

Vous n'avez pas de chance en ce qui concerne la portabilité. Bien que les API d'application soient identiques ou similaires pour UNIX et Windows, les deux implémentations reposent historiquement sur le même code BSD de Berkeley Sockets, l'architecture du système d'exploitation et donc les moyens d'accéder aux fonctions OS de bas niveau telles que le réseau. IO sont complètement différents.

Linux dispose d'un certain nombre d'outils de «reniflage de réseau» (tcpdump, ethereal, etc.) facilement disponibles. Pas si sûr de Windows, MS fournit un moniteur de réseau et il y a quelques outils disponibles - Google 'Sysinternals TDImon' pour les outils MS.

Questions connexes