Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Трафик   Найти похожие ветки 

 
Uiop   (2007-01-19 20:03) [0]

Проблема: нужно подсчитать выходящий трафик. Подскажите пож что юзать. Если б кто дал ссылку на компонент то ваще халява) Заранее спс.


 
Eraser ©   (2007-01-19 20:41) [1]

> [0] Uiop   (19.01.07 20:03)

почитай стати на этом сайте, так оно есть.


 
Орион ©   (2007-01-20 09:37) [2]

жажда халявы когда-нибудь доведет вас до нищеты (с) чей-то


 
_SuN_   (2007-01-22 04:26) [3]

unit mnetstat;

interface

uses Windows;

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;
    TMibIfTable = packed record
                   dwNumEntries : DWORD;
                   Table        : TMibIfArray;
                  end;
    PMibIfTable = ^TMibIfTable;

function IsConnectedToInternet: Boolean;
function GetTraffic (var InTraff : DWORD; var OutTraff : dword; index : byte) : longint;
function GetTraffic_dyn (var InTraff : DWORD; var OutTraff : dword) : longint;
function GetIfTable (pIfTable: PMibIfTable; pdwSize: PULONG; bOrder: Boolean ): DWORD; stdcall; external "IPHLPAPI.DLL" name "GetIfTable";
function GetConnectionsCount : byte;
function GetCSpeed (index : byte) : integer;
function GetCSInf (index : byte) : string;

implementation

uses WinSock, WinInet, sysutils;

function IsConnectedToInternet : Boolean;
var dwConnectionTypes : DWORD;
begin
dwConnectionTypes:=INTERNET_CONNECTION_MODEM+INTERNET_CONNECTION_LAN+INTERNET_CONNECTION_PROXY;
Result:=InternetGetConnectedState (@dwConnectionTypes, 0);
end;

function GetCSInf (index : byte) : string;
var Table : TMibIfTable;
   Size  : Integer;
begin
result:="0 (0/0)";
if (not(IsConnectedToInternet))
   then exit;
Size:=SizeOf(Table);
if (GetIfTable(@Table,@Size,False)=0)
   then result:="SPD:"+inttostr(Table.Table[index].dwSpeed)+"  PKTS:"+inttostr(Table.Table[index].dwInUcastPkts+Table.Table[index].dwInNUCastPkts)+"/"+inttostr(Table.Table[index].dwOutUcastPkts+Table.Table[index].dwOutNUCastPkts);
end;

function GetCSpeed (index : byte) : integer;
var Table : TMibIfTable;
   Size  : Integer;
begin
result:=0;
if (not(IsConnectedToInternet))
   then exit;
Size:=SizeOf(Table);
if (GetIfTable(@Table,@Size,False)=0)
   then result:=Table.Table[index].dwSpeed;
end;

function GetTraffic (var InTraff : DWORD; var OutTraff : dword; index : byte) : longint;
var Table : TMibIfTable;
   Size  : Integer;
begin
result:=0;
intraff:=0;
outtraff:=0;
if (not(IsConnectedToInternet))
   then exit;
Size:=SizeOf(Table);
if (GetIfTable(@Table,@Size,False)=0)
   then begin
         intraff:=Table.Table[index].dwInOctets;
         outtraff:=Table.Table[index].dwOutOctets;
         result:=intraff+outtraff;
        end;
end;

function GetConnectionsCount : byte;
var Table : TMibIfTable;
   Size  : Integer;
begin
result:=0;
Size:=SizeOf(Table);
if (GetIfTable(@Table,@Size,False)=0)
   then result:=table.dwNumEntries;
end;

function GetTraffic_dyn (var InTraff : DWORD; var OutTraff : dword) : longint;
var GetIfTable : function (pIfTable: PMibIfTable; pdwSize: PULONG; bOrder: Boolean ): DWORD; stdcall;
   H          : THandle;
   Table      : TMibIfTable;
   Size       : Integer;
begin
result:=0;
intraff:=0;
outtraff:=0;
if (not(IsConnectedToInternet))
   then exit;
H:=LoadLibrary("IPHLPAPI.DLL");
if (H=0)
   then Exit;
@GetIfTable:=GetProcAddress(H,"GetIfTable");
if (not(Assigned(GetIfTable)))
   then begin
         FreeLibrary(H);
         exit;
        end;
Size:=SizeOf(Table);
if (GetIfTable(@Table,@Size,False)=0)
   then begin
         intraff:=Table.Table[0].dwInOctets;
         outtraff:=Table.Table[0].dwOutOctets;
         result:=intraff+outtraff;
        end;
FreeLibrary(H);
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.066 c
2-1187754215
Vitaliy_____
2007-08-22 07:43
2007.09.16
Доступ к свойству компонента


2-1188040143
новычек
2007-08-25 15:09
2007.09.16
как сделать такое


2-1187604955
JetuS
2007-08-20 14:15
2007.09.16
Как получить имя и класс компонента, имеющего фокус?


4-1174832932
Satyavan
2007-03-25 18:28
2007.09.16
Сотовый телефон


2-1187687367
Quart
2007-08-21 13:09
2007.09.16
Query1.SQL.Assign(Edit1)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский