Форум: "Сети";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];
ВнизТрафик Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c