Главная страница
    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.068 c
15-1187334859
balepa
2007-08-17 11:14
2007.09.16
ReadFile зависает (ComPort)


3-1179271692
ArchValentin
2007-05-16 03:28
2007.09.16
Работа с таблицами в базе Microsoft Access


2-1187551133
Oleg13
2007-08-19 23:18
2007.09.16
Как правильно вычитать разницу времени


2-1187857116
newbdelphi
2007-08-23 12:18
2007.09.16
В каких случаях как лучше писать?


15-1187553791
wp2
2007-08-20 00:03
2007.09.16
Как загрузить Rich-тест в компонент TRichEdit на этапе проэктир..





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