Форум: "Сети";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизПодсчитать трафик определенного сайта Найти похожие ветки
← →
frEE)styler (2006-01-23 16:48) [0]Уважаемые мастера помогите реализовать процедуру чтобы возможно было подсчитывать трафик различных сайтов.
заранее спасибо!
← →
Rouse_ © (2006-01-23 17:22) [1]А как ты себе это вообще представляешь?
← →
frEE)styler (2006-01-23 19:13) [2]ну видел программу трафик инспектор?
т.е мне нужно знать сколько я поратил трафика тех сайтов на которых был.
может я не так формулирую..
← →
VirEx © (2006-01-23 19:26) [3]
> [2] frEE)styler (23.01.06 19:13)
не правильно формулируешь, уже сто раз были сделаны различные ветки про ЭТО:)
у Rouse_ © как раз есть исходник, хотя лан, вот код:
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;
← →
frEE)styler (2006-01-23 20:32) [4]спасибо за код. но он дает информацию об общем количестве потраченного трафика...
а мне нужно знать сколько потратил я после посещения определенного сайта.
т.е залез на один сайт программа начала считать трафик именного идущего с этого сайта и ни с каких других.
← →
Корешь (2006-01-24 08:07) [5]Определись с задачей, стоит различать сайт и host(ip), на одном хосте(ip) может размещатся несколькой сайтов. Если хочешь считать трафик с хоста, то это подсчет пакетов и их размеров пришедших с заданного хоста, если тебя интересует http трафик, то тогда нужно делать прокси....
← →
Rouse_ © (2006-01-24 10:48) [6]
> спасибо за код. но он дает информацию об общем количестве
> потраченного трафика...
> а мне нужно знать сколько потратил я после посещения определенного
> сайта.
Сниффером смотри куда и как он лезет. Или пускай траффик через свой прокси, а на нем уже считай...
← →
frEE)styler (2006-01-26 17:37) [7]Подскажите какой компонент более приемлем для прокси....
для моих целей в принципе нужно просто пропускать через себя трафик и считать его по каждому хосту.
← →
Rouse_ © (2006-01-26 21:39) [8]Прокси пишеться без компонентов. Но раз ассоциации только с компонентом, то IdMappedPort
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c