Страница: 1 |
Страница: 1 |
Вопрос: Как получить список расшарок на удаленном компе?
Добавлено: 22.10.05 15:08
Автор вопроса: illuzion
Сканирую диапозон ip-адресов по 139 порту и нахожу те, которые имеют расшарки. Теперь с каждого компа необходимо получить список его расшарок. Подскажите, плиз, как это сделать?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #1
Добавлено: 22.10.05 17:58
WNET API
Номер ответа: 2
Автор ответа:
illuzion
Вопросов: 1
Ответов: 3
Профиль | | #2
Добавлено: 22.10.05 20:43
А поподробнее можно?
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 22.10.05 21:18
см. примере на этом сайте есть
Номер ответа: 4
Автор ответа:
illuzion
Вопросов: 1
Ответов: 3
Профиль | | #4
Добавлено: 22.10.05 21:44
не нашел.
Номер ответа: 5
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #5
Добавлено: 22.10.05 23:13
2illuzion:
- криворукий...
http://vbnet.ru/samples/download.aspx?id=676
Номер ответа: 6
Автор ответа:
illuzion
Вопросов: 1
Ответов: 3
Профиль | | #6
Добавлено: 22.10.05 23:33
прежде, чем называть меня криворуким, лучше почитай о чем разговор был. Мне не нужен сканер включенных удаленных компов, мне нужен сканер расшаренных ресурсов на этих удаленных компах. А в том примере, ссылку на который ты дал, рассматривается как раз первое. И никакого упоминания об API там нет.
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 23.10.05 00:00
http://vb.hut1.ru/lanviewer.rar
Номер ответа: 8
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #8
Добавлено: 23.10.05 14:17
От сердца оторвал:
#define UNICODE
// Обычные хидеры
#include <windows.h>
#include <stdio.h>
// Хидер с NetShareXXX функциями
#include <lm.h>
// Это нужно для включения линкером либы при компиляции.
// Это можно сделать и в настройках проекта, но тогда:
// 1) Не будет видно, какая либа нужна
// 2) Нельзя будет распространять только код, без файла проекта
#pragma comment (lib, "netapi32.lib"
void usage(TCHAR *Exename){
// Рассказываем, как использовать эту программу
wprintf(L"Usage: %s <servername>\n", Exename);
}
void parseshare(TCHAR *Server, TCHAR *ShareName, TCHAR *Comment){
// Покажем, что нашли
TCHAR buff[1024];
wsprintf(buff,
L"Путь к ресурсу: \\\\%s\\%s\\\n"
L"Комментарий: %s\n",
Server, ShareName, Comment);
// Просто консоль ни в какую не хочет показывать
// русские символы в Unicode, потребовалась помощь
// отладчика, чтобы это узнать
MessageBox(0, buff, L"Share", MB_ICONASTERISK);
}
bool enumshare(TCHAR *Server){
// Объявляем указатели на буфер
// и на текущий элемент массива структур
PSHARE_INFO_1 BufPtr, p;
// Сюда будут возвращать успешность своего дела API
NET_API_STATUS res;
// Здесь хранится имя сервера
LPTSTR lpszServer = NULL;
// er - число найденных общих ресурсов
DWORD er=0, tr=0, resume=0, i;
// Вызовем получение списка общих ресурсов
res = NetShareEnum((LPSTR)Server, 1, (LPBYTE *)&BufPtr,
MAX_PREFERRED_LENGTH, &er, &tr, &resume);
// Проверим успешность данного дела
if(res == ERROR_SUCCESS){
// Переберем указатели на элементы массива структур
p = BufPtr;
for(i=1; i<=er; i++){
if(p->shi1_type == STYPE_DISKTREE){
parseshare(Server,
(TCHAR *)p->shi1_netname,
(TCHAR *)p->shi1_remark);
}
// Важный момент - указатель инкрементится на размер
// структуры, указателем на которую он является, т.е.
// указатель теперь указывает на следующий элемент
// массива структур
p++;
}
// Освободим буфер, в который сохранялся список
NetApiBufferFree(BufPtr);
} else{
// Произошла ошибка
return false;
}
return true;
}
// В unicode-программах стартовой функцией служит wmain()
int wmain(int argc, TCHAR *argv[]{
// Проверяем наличие аргумента
if(argc == 2){
enumshare(argv[1];
} else{
usage(argv[0];
}
return 0;
}