C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Узнать количество подключений к моему компьютеру по локальной сети.  (Прочитано 2052 раз)
Sasha
Участник


Сказали спасибо: +13/-0
Offline

Сообщений: 413


Узнать количество подключений к моему компьютеру по локальной сети.
« : 26 Октябрь 2014, 00:25:12 »

Здравствуйте! Ребята подскажите по такому вопросу. Есть ли функция при помощи которой можно узнать сколько компьютеров подключилось к моему компьютеру по локальной сети? Если нет такой функция тогда, подскажите как можно узнать это количество!!!

Заранее благодарен
« Последнее редактирование: 26 Октябрь 2014, 01:15:44 от Sasha » Записан
Rius
Давний друг


Сказали спасибо: +116/-5
Offline

Сообщений: 753


Re: Узнать количество подключений к моему компьютеру по локальной сети.
« Ответ #1 : 26 Октябрь 2014, 15:29:49 »

netstat
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366026%28v=vs.85%29.aspx
Записан
Sasha
Участник


Сказали спасибо: +13/-0
Offline

Сообщений: 413


Re: Узнать количество подключений к моему компьютеру по локальной сети.
« Ответ #2 : 27 Октябрь 2014, 09:44:19 »

Спасибо, но не совсем то, что мне надо мне нужно узнать количество подключений в сеанасах, т.е вот здесь

Записан
Main_programm
новенький


Сказали спасибо: +1/-0
Offline

Сообщений: 2


« Ответ #3 : 08 Ноябрь 2014, 21:05:54 »

Код
#ifndef UNICODE
#define UNICODE
#endif
 
#include
#include
#include
#include
 
int main(int argc, wchar_t *argv[])
{
  LPSESSION_INFO_10 pBuf = NULL;
  LPSESSION_INFO_10 pTmpBuf;
  DWORD dwLevel = 10;
  DWORD dwPrefMaxLen = -1;
  DWORD dwEntriesRead = 0;
  DWORD dwTotalEntries = 0;
  DWORD dwResumeHandle = 0;
  DWORD i;
  DWORD dwTotalCount = 0;
  LPTSTR pszServerName = NULL;
  LPTSTR pszClientName = NULL;
  LPTSTR pszUserName = NULL;
  NET_API_STATUS nStatus;
  //
  // Проверяем аргументы командной строки.
  //
  if (argc > 4)
  {
     wprintf(L"Usage: %s [\\\\ServerName] [\\\\ClientName] [UserName]\n", argv[0]);
     exit(1);
  }
 
  if (argc >= 2)
     pszServerName = argv[1];
 
  if (argc >= 3)
     pszClientName = argv[2];
 
  if (argc == 4)
     pszUserName = argv[3];
  //
  // Вызываем NetSessionEnum, указывая уровень 10.
  //
  do // начало do
  {
     nStatus = NetSessionEnum(pszServerName,
                              pszClientName,
                              pszUserName,
                              dwLevel,
                              (LPBYTE*)&pBuf,
                              dwPrefMaxLen,
                              &dwEntriesRead,
                              &dwTotalEntries,
                              &dwResumeHandle);
     //
     // Если вызов функции был удачен,
     //
     if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
     {
        if ((pTmpBuf = pBuf) != NULL)
        {
           //
           // Получение результатов в цикле.
           //
           for (i = 0; (i dwEntriesRead); i++)
           {
              assert(pTmpBuf != NULL);
 
              if (pTmpBuf == NULL)
              {
                 fprintf(stderr, "An access violation has occurred\n");
                 break;
              }
              //
              // Распечатываем полученные данные.
              //
              wprintf(L"\n\tClient: %s\n", pTmpBuf->sesi10_cname);
              wprintf(L"\tUser:   %s\n", pTmpBuf->sesi10_username);
              printf("\tActive: %d\n", pTmpBuf->sesi10_time);
              printf("\tIdle:   %d\n", pTmpBuf->sesi10_idle_time);
 
              pTmpBuf++;
              dwTotalCount++;
           }
        }
     }
     //
     // Иначе, выводим сообщение об ошибке.
     //
     else
        fprintf(stderr, "A system error has occurred: %d\n", nStatus);
     //
     // Освобождаем выделенную память.
     //
     if (pBuf != NULL)
     {
        NetApiBufferFree(pBuf);
        pBuf = NULL;
     }
  }
  //
  // Продолжаем вызывать NetSessionEnum до тех пор пока есть ещё данные.
  //
  //
  while (nStatus == ERROR_MORE_DATA); // end do
 
  // Снова проверяем выделенный буфер.
  //
  if (pBuf != NULL)
     NetApiBufferFree(pBuf);
  //
  // Отображаем окончательное количество сессий.
  //
  fprintf(stderr, "\nTotal of %d entries enumerated\n", dwTotalCount);
 
  return 0;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.535 секунд. Запросов: 19.