Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интернет, Траффик 
:(
    Опции темы
Yura_Matsuk
Дата 25.10.2004, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Подскажите, как измерить кличество информации, переданной/полученной через сеть?
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
bartram
Дата 25.10.2004, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 1
Всего: 29



Цитата(Yura_Matsuk @ 25.10.2004, 11:15)

Подскажите, как измерить кличество информации, переданной/полученной через сеть?

Снифер надо делать, я щас как раз этим занят! Надо ставить снифер на Контроллер удалённого доступа и считать байты



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Yura_Matsuk
Дата 25.10.2004, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Цитата
Снифер надо делать

А что это такое?
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
sergejzr
Дата 25.10.2004, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Вот Вам для начала ;-)
http://fullsource.nm.ru/pages/sources/inte...nettrafmon.html
Я тоже прогил базируясь на ней :)

Вообще, классная вещь, так как я не нашёл ни одного бесплатного счётчика в сети, а тут исходник готового решения :)

Удачи!
Сергей




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
anton_misa
Дата 25.10.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.1.2003

Репутация: нет
Всего: нет



ССылк не работате на скачку =((((((
PM MAIL   Вверх
Yura_Matsuk
Дата 25.10.2004, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Спасибо,sergej.z! Хороший пример!
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
sergejzr
Дата 25.10.2004, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



anton_misa Я тебе по мылу послал :)
Дальше сами :)


Yura_Matsuk Не за что :) Рад помочь.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
anton_misa
Дата 25.10.2004, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.1.2003

Репутация: нет
Всего: нет



Пасиб дорогой
PM MAIL   Вверх
mntek
Дата 4.1.2005, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


freakin_brain
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.8.2004
Где: saint-petersburg

Репутация: нет
Всего: 1



меня это тоже сначало порадовало, а потом задумался - не особо охота перебирать ip и смотреть, какой из них подходит к твоему диалап-соединению, а в винде есть специальные разделы реестра. отвечающие за эту инфу:
Код

//-------DialStat.pas-------//
unit DialStat;

interface

uses
 Windows, SysUtils, WinPerf;

type
 TDialStat = class(TObject)
   private
     function GetIndex(const pszCounter: string): string;
     function Collect(m_SObj, m_sCounter: string): DWORD;
     function fInit: boolean;
     function fGetBR: DWORD;
     function fGetBT: DWORD;
   public
     property Init: boolean read fInit;
     property GetBR: DWORD read fGetBR;
     property GetBT: DWORD read fGetBT;
   end;

const
 perf_key = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009';

var
 rt{, tc}, br, bt: string;

implementation

uses unit1;

{ TDialStat }

function TDialStat.Collect(m_SObj, m_sCounter: string): DWORD;
var
 dw, dwCounterIdOffset: dword;
 i: integer;
 pdb: PPERF_DATA_BLOCK;
 pot: PPERF_OBJECT_TYPE;
 pcd: PPERF_COUNTER_DEFINITION;
 pid: PPERF_INSTANCE_DEFINITION;
begin
 dw := 12000;
 dwCounterIdOffset := 0;
 pdb := PPERF_DATA_BLOCK(HeapAlloc(GetProcessHeap(), $00000008, dw));
 while RegQueryValueEx(HKEY_PERFORMANCE_DATA, pchar(m_SObj), nil, nil, pbyte(pdb), @dw) = ERROR_MORE_DATA do
   begin
     dw := dw + 1000;
     pdb := PPERF_DATA_BLOCK(HeapReAlloc(GetProcessHeap(), $00000008, pointer(pdb), dw));
   end;
 pot := PPERF_OBJECT_TYPE(DWORD(PByte(pdb)) + pdb.HeaderLength);
 pcd := PPERF_COUNTER_DEFINITION(DWORD(PByte(pot)) + pot.HeaderLength);
 for i := 0 to pot.NumCounters do
   begin
     if pcd.CounterNameTitleIndex = DWORD(strtoint(m_sCounter))
       then
         begin
           dwCounterIdOffset := pcd.CounterOffset;
           break;
         end;
     pcd := PPERF_COUNTER_DEFINITION(DWORD(PByte(pcd)) + pcd.ByteLength);
   end;
 pid := PPERF_INSTANCE_DEFINITION(DWORD(PByte(pot)) + pot.DefinitionLength);
 Result := PDWORD(DWORD(PByte(pid)) + dwCounterIdOffset)^;
 HeapFree(GetProcessHeap(), 0, pointer(pdb));
 RegCloseKey(HKEY_PERFORMANCE_DATA);
end;

function TDialStat.GetIndex(const pszCounter: string): string;
var
 key: HKEY;
 buf: pchar;
 szObject, szIndex: string;
 dw: dword;
 i: integer;
begin
 RegOpenKeyEx(HKEY_LOCAL_MACHINE, perf_key, 0, KEY_READ, key);
 RegQueryValueEx(key, 'Counter', nil, nil, nil, addr(dw));
 buf := AllocMem(dw);
 RegQueryValueEx(key, 'Counter', nil, nil, pbyte(buf), addr(dw));
 RegCloseKey(key);
 for i := 0 to (dw - 2) do
 begin
   if buf[i] = #0
     then
       if szObject = pszCounter
         then
           break
         else
           begin
             szIndex := szObject;
             szObject := '';
           end
     else
       szObject := szObject + buf[i];
 end;
 //----------------
 Result := szIndex;
 FreeMem(buf);
end;

function TDialStat.fInit: boolean;
begin
 try
   rt := GetIndex('RAS Total');
   //tc := GetIndex('Total Connections');
   br := GetIndex('Bytes Received');
   bt := GetIndex('Bytes Transmitted');
   {если открыть в регедите HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\019 - там можно почитать про все типы по-русски (у кого русская винда:))}
 finally
   result := true;
 end;
end;

function TDialStat.fGetBR: DWORD;
begin
 result := Collect(rt, br);
end;

function TDialStat.fGetBT: DWORD;
begin
 result := Collect(rt, bt);
end;

end.

Код

//--------------winperf.pas------------//
unit winperf;

{с большими сокращениями, но нужно только эти типы данных}

interface

uses
 windows;

type
 _PERF_DATA_BLOCK = record
   Signature: array [0..3] of widechar;
   LittleEndian: DWORD;
   Version: DWORD;
   Revision: DWORD;
   TotalByteLength: DWORD;
   HeaderLength: DWORD;
   NumObjectTypes: DWORD;
   DefaultObject: longint;
   SystemTime: SYSTEMTIME;
   PerfTime: LARGE_INTEGER;
   PerfFreq: LARGE_INTEGER;
   PerfTime100nSec: LARGE_INTEGER;
   SystemNameLength: DWORD;
   SystemNameOffset: DWORD;
 end;
 PERF_DATA_BLOCK = _PERF_DATA_BLOCK;
 PPERF_DATA_BLOCK = ^_PERF_DATA_BLOCK;

 _PERF_OBJECT_TYPE = record
   TotalByteLength: DWORD;
   DefinitionLength: DWORD;
   HeaderLength: DWORD;
   ObjectNameTitleIndex: DWORD;
   {$ifdef _WIN64}
     ObjectNameTitle: DWORD;
   {$else}
     ObjectNameTitle: LPWSTR;
   {$endif}
   ObjectHelpTitleIndex: DWORD;
   {$ifdef _WIN64}
     ObjectHelpTitle: DWORD;
   {$else}
     ObjectHelpTitle: LPWSTR;
   {$endif}
   DetailLevel: DWORD;
   NumCounters: DWORD;
   DefaultCounter: longint;
   NumInstances: longint;
   CodePage: DWORD;
   PerfTime: LARGE_INTEGER;
   PerfFreq: LARGE_INTEGER;
 end;
 PERF_OBJECT_TYPE = _PERF_OBJECT_TYPE;
 PPERF_OBJECT_TYPE = ^_PERF_OBJECT_TYPE;

type
 _PERF_COUNTER_DEFINITION = record
   ByteLength: DWORD;
   CounterNameTitleIndex: DWORD;
   {$ifdef _WIN64}
     CounterNameTitle: DWORD;
   {$else}
     CounterNameTitle: LPWSTR;
   {$endif}
   CounterHelpTitleIndex: DWORD;
   {$ifdef _WIN64}
     CounterHelpTitle: DWORD;
   {$else}
     CounterHelpTitle: LPWSTR;
   {$endif}
   DefaultScale: longint;
   DetailLevel: DWORD;
   CounterType: DWORD;
   CounterSize: DWORD;
   CounterOffset: DWORD;
 end;
 PERF_COUNTER_DEFINITION = _PERF_COUNTER_DEFINITION;
 PPERF_COUNTER_DEFINITION = ^_PERF_COUNTER_DEFINITION;

type
 _PERF_INSTANCE_DEFINITION = record
   ByteLength: DWORD;
   ParentObjectTitleIndex: DWORD;
   ParentObjectInstance: DWORD;
   UniqueID: longint;
   NameOffset: DWORD;
   NameLength: DWORD;
 end;
 PERF_INSTANCE_DEFINITION = _PERF_INSTANCE_DEFINITION;
 PPERF_INSTANCE_DEFINITION = ^_PERF_INSTANCE_DEFINITION;

implementation


end.

PM MAIL WWW ICQ   Вверх
Snowy
Дата 4.1.2005, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Как обычно в данном случае - вопрос к Яндексу.
Программа NetworkTrafficMonitor распространяется с исходными кодами.
Бери, смотри, юзай.
PM MAIL   Вверх
mntek
Дата 4.1.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


freakin_brain
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.8.2004
Где: saint-petersburg

Репутация: нет
Всего: 1



я читалsmile)
и мне не очень понравилось, вот поэтому такой код. windows perfomance monitor 4ever!!! smile)

Это сообщение отредактировал(а) mntek - 4.1.2005, 17:41
PM MAIL WWW ICQ   Вверх
ShuVaS
Дата 13.1.2005, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 26.12.2004
Где: Севастополь

Репутация: нет
Всего: нет



рябата а киньмне на мыло страничку + фалик плизззз.Не могу зайти тупо .... ПЛИЗЗЗ [email protected]
PM MAIL WWW ICQ   Вверх
Snowy
Дата 14.1.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



http://soobcha.org/Redirect/fullsource.nm....trafmonitor.zip
Если линк не рабочий, то поищи здесь на форуме - линк давался несколько раз.

Это сообщение отредактировал(а) Snowy - 14.1.2005, 10:07
PM MAIL   Вверх
Akella
Дата 14.1.2005, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



ссылка битая
Добавлено @ 10:21
можно ставить Wingate и анализировать его логи

Это сообщение отредактировал(а) dsergey - 14.1.2005, 10:20
PM MAIL   Вверх
Snowy
Дата 14.1.2005, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Ну я ж говорю, тогда поиск.
По слову "трафик" тем 15 было. Вот, ткнул в первую попавшуюся:
http://fullsource.nm.ru/pages/sources/inte...nettrafmon.html
Этот линк рабочий.
А ставить WinGate - это отдельная песня. Во-первых он платный, а во-вторых программа получается несамостоятельная.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0880 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.