Войти

Показать полную графическую версию : Подсчет траффик на Delphi


Страниц : 1 [2] 3

Netscaper
21-12-2004, 16:50
Сделал фильтр. Укажи в полях "dest" и "src" IP-адреса твоей машины и шлюза в интернет. Посмотри, как работает (т.е. зайди на какой-нибудь сайт). Останутся входящие и исходящие твои.
[Вложение удалено]

fossil
21-12-2004, 17:09
Хммм.. А dest и src за что отвечают? dest это локальный адрес машины, а src адрес шлюза в инет? Интересно... а если вообще как-нибудть левый тип юзает мою прогу :D ... ему что сорцы тепепрь менят..
А никак нельзя просто перехватить значения с соединения (будь этот инет или лвс)? Просто те которые указаны там "Отправлено" и "Получено". Мне впринципе кроме этих параметров ничего и не надо...
Нифига мы с тобой уже вторую страницу открыли ;)
Кстати, как ты подгружаешь файлы?

Netscaper
21-12-2004, 17:22
Понимаешь, программа ловит все, которые валятся к тебе, даже если они напрямую твоему хосту не предназначены. Иными словами, тебе приходят пакеты у которых в заголовке указано, хост-получатель и хост-отправитель (dest и src). Например, ты работаешь в сети со шлюзом (твой-192.168.0.1, шлюз-192.168.0.2). Когда ты делаешь запрос на какой-то сайт, ты отправляешь сообщения (dest-192.168.0.2,src-192.168.0.1) шлюзу, когда получаешь ответ (страницы HTML, файлы и т.п), ты получаешь сообщения от шлюза (dest-192.168.0.1,src-192.168.0.2). Таким образом, тебе надо оставлять сообщения, у которых dest твой и шлюза и src твой и шлюза (трафик в обоих направлениях). Если ты хочешь посчитать только входящий трафик, то тебе надо оставлять сообщения, где dest - твой компьютер, а src - шлюз.
Нифига мы с тобой уже вторую страницу открыли
... У меня уже третья (по десять).
Кстати, как ты подгружаешь файлы?
... В «расширенном» режиме внизу появляется...

fossil
21-12-2004, 17:35
Netscaper
ясно.
А нельзя никак отловить от соединения? Я имею ввиду что когда к инету цепляешься, в трее появляются телеки :) вот в них написаны сколько отправлено и получено, оттуда нельзя выдернуть никак?

Netscaper
21-12-2004, 17:42
Можно. Слушай, скачай себе какой-нибудь TMeter и посмотри как он работает, а то, я подозреваю, что ты не очень разбираешься в сетях :lamer:

fossil
21-12-2004, 17:57
Netscaper Хехе.. в сетях то разбираюсь... не разбираюсь в программирование :) А ты думаешь есть компоненты для подсчета траффика? Тогда чего я геморрой ловлю?!

Netscaper
21-12-2004, 18:01
Нет, TMeter (http://www.tmeter.ru/) - это программа которая позволяет считать трафик. Кстати, насчёт компонентов идея неплохая, посмотри на Torry.Net (http://www.torry.net/), может, найдешь что-нибудь.

fossil
21-12-2004, 18:02
Netscaper
Ок.. ща гляну

fossil
21-12-2004, 18:09
Что-то вроде нету :(
А ты знаешь как реализовать перехват с соединения? :)

Netscaper
21-12-2004, 18:37
Последний вариант. Я не знаю какой компьютер у тебя в сети выполняет роль шлюза или прокси, так что разбирайся сам, как тебе его определять для подсчёта интернет-трафика. Указываешь машину в сети для которой следует считать трафик, прога тебе все посчитает.

fossil
21-12-2004, 18:39
Netscaper
Спасибо.

Netscaper
21-12-2004, 18:58
Пожалуйста :oszone:

fossil
21-12-2004, 20:03
Вобщем если кто знает как в соединении отлавливать траффик пишите сюда. Или может у кого есть компонент..

DeaDMan77
09-01-2005, 16:55
Народ, а можно с помощью этой проги еще порт посмотреть? Если можно, то что нужно добавить?

fossil
10-01-2005, 14:15
DeaDMan77
Навреное можно, раз определяется его протокол, значит и сам номер можно :)
Netscaper
Помогай, без тебя не справимся :)

Netscaper
10-01-2005, 23:23
По заявкам... Добавил в код сниффера заголовки TCP и UDP, которые содержат номера портов. Программа не претендует на эффективность и оптимальность, но суть, на мой взгляд, отражает. Краткое пояснение. Заголовки TCP и UDP вкладываются внутрь сообщение протокола TCP/IP. Иначе, сначала идет заголовок IP (структура IPHeader) в котором указывается, какой протокол будет использоваться TCP или UDP, в зависимости от этого далее идет либо заголовок TCP (TTCPHeader) или UDP (TUDPHeader). Исходный код прилагается, надеюсь, что страждущие всё же разберутся...

DeaDMan77
11-01-2005, 02:11
Вери велл сенькаю :)

А можно еще вопрос? :) Можноли ненужные пакеты блокировать и как насчет других протоколов, типа ICMP?

Netscaper
11-01-2005, 08:08
Можно, наверняка. Хотя я и не пытался... Поищи в Google, сложно разве? Надеюсь, смысл моей программы понят, а описания всяких протоколов можно найти тут (http://citforum.proc.ru/nets/semenov/), ICMP (http://citforum.proc.ru/nets/semenov/4/44/icmp_444.shtml) в частности.

fossil
11-01-2005, 08:54
Netscaper
Благодарю Вас :)

fossil
11-01-2005, 09:07
Только мне не понятно зачем ты два раза прописал hdr.protocol?

case hdr.protocol of
IPPROTO_TCP:
begin
tcphdr := PTCPHeader(@Buffer[20]);
outstr := outstr + ':' + IntToStr(InvertWord(tcphdr.srcport));
end;
IPPROTO_UDP:
begin
udphdr := PUDPHeader(@Buffer[20]);
outstr := outstr + ':' + IntToStr(InvertWord(udphdr.srcport));
end;
end;




© OSzone.net 2001-2012