Подтвердить что ты не робот

Мониторинг использования сетевой сети?

Есть ли способ на С# или 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

4b9b3361

Ответ 1

Возможно, но если я не ошибаюсь, вам придется создать сетевой драйвер для фильтрации всего сетевого трафика и выяснить, какой процесс создал трафик.

У Microsoft есть бесплатное приложение, называемое Microsoft Network Monitor 3.2 (download). В соответствии с примечаниями к выпуску он также использует api.

API сетевого монитора: создайте свой собственный приложения, которые захватывают, анализируют и анализировать сетевой трафик!

Вот сообщение в блоге об этих API.

По-моему, вы должны использовать этот API (или другой API, такой как WinPcap), чтобы фильтровать трафик вместо написания собственного драйвера устройства.

Ответ 2

Вы можете использовать WinPcap для этого или написать собственный драйвер устройства. Я не думаю, что есть какие-то счетчики производительности для каждого процесса, которые вы можете использовать.