Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 23.10.05 14:17
От сердца оторвал:
// Определяем, что будем использовать в программе Unicode
#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;
}

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам