Мониторинг использования сетевой сети?
Есть ли способ на С# или C/С++ и Win32 для мониторинга определенного использования сети процесса (без этого приложения, которое вы построили, очевидно,)? Я хотел бы отслеживать только один процесс примерно за час или около того, а затем возвращать байты, используемые только этим процессом, например, например, limewire.
Возможно ли это? Я знаю, что netstat -e на окнах расскажет вам об общем количестве отправленных/полученных байтов, но это относится ко всем процессам.
edit: Если я не могу вернуть только одно использование процессов, как я могу получить байты, отправленные/полученные всей системой? как показывают netstat, за исключением того, что я просто хочу целые числа.
например:
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
Я просто хочу получить 2 переменные, например rec = 2111568926 и отправлено = 1133174989
Ответы
Ответ 1
Возможно, но если я не ошибаюсь, вам придется создать сетевой драйвер для фильтрации всего сетевого трафика и выяснить, какой процесс создал трафик.
У Microsoft есть бесплатное приложение, называемое Microsoft Network Monitor 3.2 (download). В соответствии с примечаниями к выпуску он также использует api.
API сетевого монитора: создайте свой собственный приложения, которые захватывают, анализируют и анализировать сетевой трафик!
Вот сообщение в блоге об этих API.
По-моему, вы должны использовать этот API (или другой API, такой как WinPcap), чтобы фильтровать трафик вместо написания собственного драйвера устройства.
Ответ 2
Вы можете использовать WinPcap для этого или написать собственный драйвер устройства. Я не думаю, что есть какие-то счетчики производительности для каждого процесса, которые вы можете использовать.
Ответ 3
Я задал тот же вопрос на форуме MSDN и получил ответ. Честно говоря, попробовали. То есть но не так сложно)) Было предложено использовать ETW. Я не понимал, как правильно использовать ETW. http://social.msdn.microsoft.com/Forums/en-US/perfmon/thread/b82da95a-1c18-49ce-9bfa-e3d79ec40907
Ответ 4
Ограничитель NetLimiter 2
Сетевой трафик
Вы можете получить последнюю бесплатную версию здесь