Что нового

Подсчет всего входящего + исходящего траффика

Medic84

Омега
Команда форума
Администратор
Сообщения
1 541
Репутация
326
Хочу написать для себя небольшой траффик метр. Но не могу найти для него главную функцию. :( От этой функции требуется подсчет всего входящего(+исходящего) траффика.
Знаю программу написанную на основе Framework, но в эти дебри лезть не охота т.к. платформа тормознутая и долго грузится. :blink:

P.s. И все таки, где можно подробно про все функции Framework
 

timsky

Осваивающий
Сообщения
93
Репутация
28
Я тоже задавался этим вопросом. Вот что нашел на оф. форуме: http://www.autoitscript.com/forum/index.php?showtopic=100617&st=0&p=719868&hl=GetTcpStatistics&fromsearch=1&#entry719868

Но там пакеты. Как получить мегабайты - пока не знаю.
Есть прога неплохая http://www.analogx.com/contents/download/Network/nsl/Freeware.htm - она использует inetmib1.dll и snmpapi.dll, думаю, что нужно рыть в этом направлении.

В качесте грубого варианта можно использовать это: http://nirsoft.net/utils/awatch.html с ком. строкой, но это не айс.
Еще как вариант парсить дамп netstat -e -s или netstat -e, но ее показания у меня расходятся с показаниями Adapter Watch

Может кто в курсе, как это нормально реализовать?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Вот исходник плагина для BlackBox. Я в С++ не силён. Может быть кто-нибудь попробует разобраться?

BBnettraffic.7z
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Вот это я думаю тебе может помочь, а именно функция GetIfEntry(). Тебе нужны следующие записи в той структуре:

dwInOctets - Количество байт принятых через интерфейс
dwOutOctets - Количество байт отправленных через интерфейс

Более подробно об этой функции можно почитать здесь.

:smile:

Есть здесь правда одна засада. Эти два параметра имеют размер DWORD, что ограничивает максимальное значение до 4 Гб. Видимо раньше никому и в голову не могло прийти, что можно передать/принять данных больше 4 Гб. Так что при превышении этого порога счетчики будут обнуляться. В остальном, это незаменимая функция. Правда сам никогда ей не пользовался.



Добавлено:
Сообщение автоматически объединено:

Кстати прикольная библиотека, но недоделанная. Надо бы ее переписать "по человечески".
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Вот написал пример на эту тему.
 

zxenfighter

Новичок
Сообщения
2
Репутация
1
Подскажите пожалуйста, хотя бы простейший пример, как с помощью IPHLPAPI.DLL, вывести входящий/исходящий трафик, в пакетах или байтах. С DllCall практически не знаком, нужные функции нашел, но как это все оформить не могу сообразить :stars:
 
Верх