|
Вопрос # 719/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Для определения всех компьютеров в сети пользуюсь таким способом (см. приложение). Но, после реорганизации произошедшей в моей сетке, программа перестала работать, т.к. не определяет некоторые компьютеры, в частности которые не видно в сетевом окружении (сами компы-то есть, если ай-пи вручную вводить все норомально). Да и индексы лишние приписывает. Все, что удалось нарыть работает по той же схеме, что и приведенный код. Млжет, есть другой способ?
Приложение: Переключить в обычный режим- function TNetForm.FillNetLevel(xxx: PNetResource; List:TListItems): Word;
- Type
- PNRArr = ^TNRArr;
- TNRArr = array[0..59] of TNetResource;
- Var
- x: PNRArr;
- tnr: TNetResource;
- I : integer;
- EntrReq,
- SizeReq,
- twx: THandle;
- WSName: string;
- LI:TListItem;
- begin
- Result :=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER, xxx, twx);
- If Result = ERROR_NO_NETWORK Then Exit;
- if Result = NO_ERROR then
- begin
- New(x);
- EntrReq := 1;
- SizeReq := SizeOf(TNetResource)*59;
- while (twx <> 0) and
- (WNetEnumResource(twx, EntrReq, x, SizeReq) <> ERROR_NO_MORE_ITEMS)
do
- begin
- For i := 0 To EntrReq - 1 do
- begin
- Move(x^[i], tnr, SizeOf(tnr));
- case tnr.dwDisplayType of
- RESOURCEDISPLAYTYPE_SERVER:
- begin
- if tnr.lpRemoteName <> '' then
- WSName:= tnr.lpRemoteName
- else WSName:= tnr.lpComment;
- LI:=list.Add;
- LI.Caption:=copy(WSName,3,length(WSName)-2);
- //list.Add(WSName);
- end;
- else FillNetLevel(@tnr, list);
- end;
- end;
- end;
- Dispose(x);
- WNetCloseEnum(twx);
- end;
- end;
-
-
 |
Вопрос задал: Качурин Антон Павлович (статус: Посетитель)
Вопрос отправлен: 9 июля 2007, 22:36
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Качурин Антон Павлович!
А может поковырять в другом направлении? я бы взял и попинговал подсетку. Но предупрежу, некоторые машины закрыты фаерволами и не будут отзываться. Если фаервол настоен крамотно, то у вас врядли что то получиться. Что бы пробиться через такие защиты прийдётся изучать уязвимости протоколов и так дальше, но это тема уже другого сайта...
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 10 июля 2007, 00:37
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|