Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
8-1165916716
zenov
2006-12-12 12:45
2007.09.16
как подключить к своей проге плагины аудиовывода из Winamp?


15-1187590944
kudatsky
2007-08-20 10:22
2007.09.16
Пропали хинты


2-1187783503
Bast
2007-08-22 15:51
2007.09.16
Файл


15-1187317251
Идей
2007-08-17 06:20
2007.09.16
Можно ли написать функцию которая бы писала функцию копирования з


2-1188065215
hprx
2007-08-25 22:06
2007.09.16
Работа с графикой.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский