| 
| 
 | Вопрос # 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
 
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |