Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Получение IP-адресов всех компьютеров в рабочей группе

01.01.2007
var 
 
Computer: array[1..500] of string[25];
 
ComputerCount: Integer;
 
procedure
FindAllComputers(Workgroup: string);
var
 
EnumHandle: THandle;
 
WorkgroupRS: TNetResource;
 
Buf: array[1..500] of TNetResource;
 
BufSize: Integer;
 
Entries: Integer;
 
Result: Integer;
begin
 
ComputerCount := 0;
 
Workgroup := Workgroup + #0;
 
FillChar(WorkgroupRS, SizeOf(WorkgroupRS), 0);
 
with WorkgroupRS do
   
begin
      dwScope
:= 2;
      dwType
:= 3;
      dwDisplayType
:= 1;
      dwUsage
:= 2;
      lpRemoteName
:= @Workgroup[1];
   
end;
 
WNetOpenEnum(RESOURCE_GLOBALNET,
    RESOURCETYPE_ANY
,
   
0,
   
@WorkgroupRS,
   
EnumHandle);
  repeat
   
Entries := 1;
   
BufSize := SizeOf(Buf);
   
Result :=
     
WNetEnumResource(EnumHandle,
     
Entries,
     
@Buf,
     
BufSize);
   
if (Result = NO_ERROR) and (Entries = 1) then
     
begin
       
Inc(ComputerCount);
       
Computer[ComputerCount] := StrPas(Buf[1].lpRemoteName);
     
end;
 
until (Entries <> 1) or (Result <> NO_ERROR);
 
WNetCloseEnum(EnumHandle);
end; { Find All Computers }

Автор: Song

Взято из https://forum.sources.ru