Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

лог скорости передачи данных

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [В Интернете] >> лог скорости передачи данных
Имя
Сообщение << Старые топики   Новые топики >>
лог скорости передачи данных - 2008-10-03 08:34:46.700000   
Anthonylm

Сообщений: 1
Оценки: 0
Присоединился: 2008-10-03 08:26:05.696666
Доброго всем времени суток.

Народ, подскажите плиз…..
Есть локальная сеть 1 и локальная сеть 2.
доступ в интеренет предоставляеться через локальную сеть 2.
Нужна программа которая бы позволяла вести учет трафика на компьютере из локальной сети 1.
есть такие? программ кучу перепробовал, в реальном времени показывают скорость подключения, а вот чтобы вели лог, хотя бы среднюю скорость в день. Нужно собрать данные хотя бы за неделю. Доступа к серверам из локальной сети 2 нет.
Post #: 1
RE: лог скорости передачи данных - 2008-10-03 12:28:32.160000   
DenischPro

Сообщений: 10
Оценки: 0
Присоединился: 2008-10-02 14:51:17.056666
Здравствуйте, Anthonylm!
 
Вашу программу можно реализовать несколькими способами от простого до сложного.
Простой:
 
1)Запускаем программу, отображающюю скорость подключения!
2)У любой такой программы есть обязательно окошечко для вывода данных в диалоговом окне. Определяем его id. Каждая прога с диалоговым окном, созданным при помощи одной из функций ряда CreateDialogBox, имеет такой id. Этот id не меняется никогда, он зашит в exe'шнике. Для этого воспользоваться можно плагином к OllyDbg отладчикку Windows Juggler.
 
2.1) Прога с диалоговым окном, созданным при помощи CreateWindow, CreateWindowEx может не иметь id, но тогда имеет точный порядок расположения в родительском окне. Тогда вместо id находим его порядковый номер программно, предварительно перед этим найдя имя класса родительского окна(тоже можно воспользоваться Windows Juggler). Код на Си++ будет выглядеть примерно так:
 
HWND hwndParent = FindWindow(lpClassName, NULL);//Находим дескриптор родительского окна
if(bWndHasId)//если окно с нужной наи инфой имеет id
  hwndToOutInfo = GetDlgItem(hwndParent, id);
else
  EnumChildWindows(hwndParent, EnumChildWindowsProc, NULL);//Перечисляем дочерние окна
SendMessage(hwndToOutInfo, WM_GETTEXT, NULL, strInfo);//Забираем нужную нам инфу
//…
//…
int n = 0;
BOOL CALLBACK EnumChildWindowsProc(HWND hwndChild, LPARAM)
{
  if(n == nWndToOutInfo)//nWndToOutInfo находится опытным путем
  {
     hwndToOutInfo = hwndChild;//Будем использовать найденный дескриптор
     return false;//Перечислять больше необязательно
  }
  else
  {
     n++;
     return true;//Перечисляем дальше
  }
}
 
3) Осталось только реализовать таймер и лог
простой таймер
CreateThread(…,ThreadProc,…);
//…
//…
DWORD WINAPI ThreadProc(LPARAM);
{
  while(WaitForSingleObject(hEventExit, 50) == WAIT_TIMEOUT)//время в миллисекундах
  {
    //Код, забирающий инфу
    //Код лога
  }
  return 0;
}
 
Лог:
HANDLE hFile = CreateFile(…, CREATE_NEW,…);
if(hFile != INVLALID_HANDLE_VALUE)
{
  char s[0x100];
  DWORD dwBytesWritten;
  sprintf(s, "Нужный нам формат вывода%s\n", strInfo);
  WriteFile(hFile, s, strlen(s), &dwBytesWritten, NULL);
  CloseHandle(hFile);
}
 
4) Дело за малым - оптимизировать! Ж-:)
Post #: 2
Страниц:  [1]
Все форумы >> [В Интернете] >> лог скорости передачи данных







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.