c# - org - mapwindows 5
Monitorear el uso de la red de un proceso? (4)
¿Hay alguna forma en C # o C / C ++ & Win32 para monitorear el uso de la red de cierto proceso (sin que esa aplicación sea construida por usted, obviamente)? Me gustaría monitorear solo 1 proceso durante aproximadamente una hora, luego devolver los bytes utilizados solo por ese proceso, como limewire, por ejemplo.
¿Es posible? Sé que netstat -e en Windows te dirá el total de bytes enviados / recibidos, pero eso es para todos los procesos.
editar: si no puedo devolver solo un uso de procesos, ¿cómo puedo obtener los bytes enviados / recibidos por todo el sistema? como se muestra netstat, excepto que solo quiero los enteros.
p.ej:
netstat -e Received Sent Bytes 2111568926 1133174989 Unicast packets 3016480 2711006 Non-unicast packets 3122 1100 Discards 0 0 Errors 0 0 Unknown protocols 0
Solo quiero obtener 2 variables, como rec = 2111568926 y enviado = 1133174989
Es posible, pero si no me equivoco, tendrá que crear un controlador de red para filtrar todo el tráfico de red y averiguar qué proceso creó el tráfico.
Microsoft tiene una aplicación gratuita llamada Microsoft Network Monitor 3.2 ( descargar ). De acuerdo con las notas de la versión, también tiene una API para usar.
Network Monitor API: crea tus propias aplicaciones que capturan, analizan y analizan el tráfico de red.
Aquí hay una publicación de blog sobre estas API .
En mi opinión, debería usar esta API (u otra API como WinPcap) para filtrar el tráfico en lugar de escribir su propio controlador de dispositivo.
Puede usar WinPcap para esto o escribir su propio controlador de dispositivo. No creo que haya ningún contador perfmon por proceso que pueda aprovechar.
Network Traffic Monitor Puede obtener la última versión de freeware desde aquí
Hice la misma pregunta en el foro de MSDN y recibí una respuesta. Francamente hablando lo he intentado. Lo intenté pero no tanto). Se sugirió usar ETW. No me di cuenta de cómo consumir los eventos de ETW correctamente. http://social.msdn.microsoft.com/Forums/en-US/perfmon/thread/b82da95a-1c18-49ce-9bfa-e3d79ec40907