2010-10-08 5 views
1

Dans Windows XP (SP2 si nécessaire), existe-t-il un moyen de détecter, à partir d'une application de l'espace utilisateur, qu'un socket TCP/UDP (de un processus) a ouvert? Je connais des fonctions GetExtendedTcpTable() et GetExtendedUdpTable(), mais ils détectent seulement actuellement sockets ouverts. Certaines sockets se ferment immédiatement après leur ouverture, le seul moyen de détecter leur existence est d'être averti quand elles s'ouvrent.Comment détecter les sockets ouvertes dans Windows?

Si un tel mécanisme n'existe pas dans l'espace utilisateur, je suis prêt à aller dans l'espace noyau pour obtenir cette fonctionnalité. Y a-t-il des fonctionnalités documentées/non documentées qui pourraient le faire?

+0

Windows inclut la commande exécutable 'netstat.exe' qui affiche les connexions en cours d'ouverture et d'écoute ... vous pourrez peut-être l'utiliser. – ewall

Répondre

1

Vous aurez probablement besoin d'écrire un pilote WinSock LSP ou SPI afin de le détecter sans avoir à raccorder chaque processus en cours directement.

Questions connexes