![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подсчет траффика
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]Отозвался!
А что нужно то? Где, для чего, тех условия.