ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Расшаренные ресурсы в сети
  #1  
Старый 14.03.2010, 01:12
kurz
Новичок
Регистрация: 05.02.2010
Сообщений: 11
Провел на форуме:
58203

Репутация: 0
По умолчанию Расшаренные ресурсы в сети

Возник такой вопрос: как в программе (на c++) реализовать получение списка расшаренных ресурсов определенного компа в локальной сети?
Может кто-нибудь помочь советом?
 
Ответить с цитированием

  #2  
Старый 14.03.2010, 14:00
maestro-ant
Новичок
Регистрация: 08.01.2007
Сообщений: 25
Провел на форуме:
25858

Репутация: 5
По умолчанию

WNetOpenEnum и WNetEnumResource
рекурсивно перебирай спомощу: FindFirstFile, FindNextFile.
 
Ответить с цитированием

  #3  
Старый 20.03.2010, 18:28
irinak
Новичок
Регистрация: 19.03.2010
Сообщений: 6
Провел на форуме:
4458

Репутация: 0
По умолчанию

Может у вас исходники есть программки на C++ VS по поиску локальных папок в сети?
Спасибо большое.
 
Ответить с цитированием

  #4  
Старый 20.03.2010, 21:18
kurz
Новичок
Регистрация: 05.02.2010
Сообщений: 11
Провел на форуме:
58203

Репутация: 0
По умолчанию

Код:
#include "stdafx.h"

#pragma comment(lib, "netapi32.lib")
#pragma comment(lib, "mpr.lib")
#pragma comment(lib, "ws2_32.lib")

#define UNICODE
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <lm.h>

void wmain( int argc, TCHAR *lpszArgv[ ])
{
   PSHARE_INFO_502 BufPtr,p;
   NET_API_STATUS res;
   LPTSTR   lpszServer = NULL;
   DWORD er=0,tr=0,resume=0, i;

   lpszServer = lpszArgv[1];

   printf("Share:              Local Path:                   Uses:   Descriptor:\n");
   printf("---------------------------------------------------------------------\n");

   do
   {
      res = NetShareEnum (lpszServer, 502, (LPBYTE *) &BufPtr, -1, &er, &tr, &resume);

      if(res == ERROR_SUCCESS || res == ERROR_MORE_DATA)
      {
         p=BufPtr;
         for(i=1;i<=er;i++)
         {
            printf("%-20S%-30S%-8u",p->shi502_netname, p->shi502_path, p->shi502_current_uses);
            if (IsValidSecurityDescriptor(p->shi502_security_descriptor))
               printf("Yes\n");
            else
               printf("No\n");
            p++;
         }
         NetApiBufferFree(BufPtr);
      }
      else 
         printf("Error: %ld\n",res);
   }
   while (res==ERROR_MORE_DATA);
   getch();
 
   return;
}
это есть в MSDN. Правда в некоторых случаях возвращает error #5 - Access Denied, хотя сеть равноправная, о каком доступе идет речь?
 
Ответить с цитированием

  #5  
Старый 21.03.2010, 00:22
irinak
Новичок
Регистрация: 19.03.2010
Сообщений: 6
Провел на форуме:
4458

Репутация: 0
По умолчанию

Спасибо большое, Kurz.
В мсдн-е видела такой пример, но он не скомпилился(.
error C2664: 'NetShareEnum' : cannot convert parameter 1 from 'LPTSTR' to 'LPSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
 
Ответить с цитированием

  #6  
Старый 21.03.2010, 11:09
kurz
Новичок
Регистрация: 05.02.2010
Сообщений: 11
Провел на форуме:
58203

Репутация: 0
По умолчанию

я передавал параметр сразу из командной строки, ошибки вроде не было. все как в листинге. Функции передается сетевое имя компа, а не адрес.
вопрос: как получить сетевое имя компа по его адресу (функция WNetGetUser не возвращает толком ничего, пример из того же msdn'a не работает)
 
Ответить с цитированием

  #7  
Старый 21.03.2010, 15:46
irinak
Новичок
Регистрация: 19.03.2010
Сообщений: 6
Провел на форуме:
4458

Репутация: 0
По умолчанию

Kurz, а разве функция NetShareEnum в первом парамере не выводит имена всех компов? Только вот как это получить? Может кто знает?
У меня ещё вопрос: всё работает - выводится путь расшаренной папки, проверяю на своем компе - локалки нет. Вопрос: Как мне из консольки сделать MFC?
Спасибочки)
 
Ответить с цитированием

  #8  
Старый 22.03.2010, 02:51
kurz
Новичок
Регистрация: 05.02.2010
Сообщений: 11
Провел на форуме:
58203

Репутация: 0
По умолчанию

Код:
servername 
Pointer to a string that specifies the DNS or NetBIOS name of the remote server on which the function is to execute.
-первый параметр, это сетевое имя компа, к которому применяется функция.
Цитата:
Как мне из консольки сделать MFC?
руками разве что...)
 
Ответить с цитированием

  #9  
Старый 22.03.2010, 02:53
irinak
Новичок
Регистрация: 19.03.2010
Сообщений: 6
Провел на форуме:
4458

Репутация: 0
По умолчанию

Дельный совет!))))
Исходничка бы не нашлось?)
 
Ответить с цитированием

  #10  
Старый 23.03.2010, 18:32
kurz
Новичок
Регистрация: 05.02.2010
Сообщений: 11
Провел на форуме:
58203

Репутация: 0
По умолчанию

Цитата:
Как мне из консольки сделать MFC?
помоему чтото похожее я видел в книге "C++ глазами хакера". Могу и ошибаться
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки Windows 2 SVipeR Windows 9 02.03.2009 19:28
Социальные сети за два года выросли вдвое [dei] Мировые новости 5 17.01.2009 13:05
Ошибки Windows dinar_007 Windows 19 01.07.2007 13:32
Статья: Атака на Wi-Fi silveran Аппаратное обеспечение 1 15.04.2006 16:27



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ