Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подсчет траффика


ArMellon ©   (2006-01-17 12:38:00) 

Как сделать подсчет траффика?
я так понимаю есть 2 способа
сделать свой прокси сервер или
ставить сниффер
у кого есть какая-нить инфа по теме
отзовитесть


VirEx   (2006-01-18 17:32:00) [1]


>  [5] sicilla ©   (17.01.06 19:09)

ничего сложного: объявляешь тип и переменную, и вызываешь функцию


Eraser   (2006-01-17 21:57:00) [2]


> programania ©   (17.01.06 20:38) [6]

Offtop:
оформление кода ужасное...


programania   (2006-01-17 20:38:00) [3]

Исходный текст программы на Delphi5 7кб для учета трафика
и выдачи отчета по дням, но без прокси и сниффера
http://programania.com/ti.zip


sicilla   (2006-01-17 19:09:00) [4]

VirEx: чето-как-то сложно...


VirEx   (2006-01-17 18:04:00) [5]

Удалено модератором
Примечание: Дубль...


VirEx   (2006-01-17 18:04:00) [6]

type
 TMibIfRow = packed record
   wszName  : array[0..255] of WideChar;
   dwIndex  : DWORD;
   dwType  : DWORD;
   dwMtu  : DWORD;
   dwSpeed  : DWORD;
   dwPhysAddrLen : DWORD;
   bPhysAddr  : array[0..7] of Byte;
   dwAdminStatus : DWORD;
   dwOperStatus : DWORD;
   dwLastChange : DWORD;
   dwInOctets  : DWORD;
   dwInUcastPkts : DWORD;
   dwInNUCastPkts : DWORD;
   dwInDiscards : DWORD;
   dwInErrors  : DWORD;
   dwInUnknownProtos : DWORD;
   dwOutOctets  : DWORD;
   dwOutUCastPkts : DWORD;
   dwOutNUCastPkts : DWORD;
   dwOutDiscards : DWORD;
   dwOutErrors  : DWORD;
   dwOutQLen  : DWORD;
   dwDescrLen  : DWORD;
   bDescr  : array[0..255] of Char;
 end;
 TMibIfArray = array [0..512] of TMibIfRow;
 PMibIfRow = ^TMibIfRow;
 PmibIfArray = ^TmibIfArray;

type
TMibIfTable = packed record
 dwNumEntries : DWORD;//кол-во соединений
 Table     : TMibIfArray;
end;
PMibIfTable = ^ TMibIfTable;

var
 Form1: TForm1;
 GetIfTable:function(pIfTable: pMibIfTable; pdwSize:puLONG; bOrder:boolean):DWORD;stdcall;
 Table   : tMibIfTable;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 h:THandle;
 i,Size:integer;
 buff:array [0..1024] of byte;
begin
h := LoadLibrary('IPHLPAPI.DLL'); //Загружаем библиотеку
if h = 0 then Exit;
@GetIfTable := GetProcAddress(h, 'GetIfTable');
Size:=SizeOf(Table);
GetIfTable(@Table, @Size, False );
memo1.Lines.Clear;
for i:=0 to Table.dwNumEntries-1 do begin
memo1.Lines.Add(Table.Table[i].bDescr);

memo1.Lines.Add(format('MAC: %d.%d.%d.%d.%d.%d.%d.%d.',
[Table.Table[i].bPhysAddr[0],
Table.Table[i].bPhysAddr[1],
Table.Table[i].bPhysAddr[2],
Table.Table[i].bPhysAddr[3],
Table.Table[i].bPhysAddr[4],
Table.Table[i].bPhysAddr[5],
Table.Table[i].bPhysAddr[6],
Table.Table[i].bPhysAddr[7]
]));
memo1.Lines.Add('in: '+inttostr(Table.Table[i].dwInOctets)+' byte');
memo1.Lines.Add('out: '+inttostr(Table.Table[i].dwOutOctets)+' byte');
memo1.Lines.Add('all: '+inttostr(Table.Table[i].dwInOctets+Table.Table[i].dwOutOctets)+' byte');

memo1.Lines.Add('');
end;

FreeLibrary(h);
end;


sicilla   (2006-01-17 15:43:00) [7]

Есть компонента, тама все есть. Ищи. Как называется не скажу. Пример - моя программа Account XP.


atruhin   (2006-01-17 14:25:00) [8]

Отозвался!
А что нужно то? Где, для чего, тех условия.


Наверх

Титульная страница Поиск, карта сайта Написать письмо