Сканирование доменов локальной сети

Previous  Top  Next

    
 

 

 

Переменная List заполняется списком доменов. Функция возвращает код ошибки обращения к сети.

Code:

Function FillNetLevel(xxx: PNetResource; list: TStrings) : Word;

Type

   PNRArr = ^TNRArr;

   TNRArr = array[0..59] of TNetResource;

Var

  x: PNRArr;

  tnr: TNetResource;

  I : integer;

  EntrReq,

  SizeReq,

  twx: Integer;

  WSName: string;

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_DOMAIN:

                   begin

                      if tnr.lpRemoteName <> '' then

                          WSName:= tnr.lpRemoteName

                          else WSName:= tnr.lpComment;

                      list.Add(WSName);

                   end;

                   else FillNetLevel(@tnr, list);

                  end;

                 end;

           end;

           Dispose(x);

           WNetCloseEnum(twx);

    end;

end;

 

 

 

©Drkb::03307

Источник: http://dmitry9.nm.ru/info/