Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как просканировать все локальные IP? [D6]


Novichek ©   (2002-10-16 01:17:00) 

Как просканировать все локальные IP, как это делает windows commander?


perov   (2002-10-17 12:27:00) [1]

а как это делает windows comander?


AlexBeliy   (2002-10-16 17:27:00) [2]

IP Не знаю. А список машин - кто-то писал следующее:
(проверял - работает!!!)

var
Buf : array[0..200] of TNetResource;
CompCount:Integer;

function FindAllComputers(Workgroup: string):Integer;
var
EnumHandle : THandle;
WorkgroupRS : TNetResource;
BufSize : Cardinal;
Entries : Cardinal;
Rest : Cardinal;
begin
CompCount := 0;
Workgroup := Workgroup + #0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
with WorkgroupRS do begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwDisplayType := RESOURCEDISPLAYTYPE_DOMAIN;
dwUsage := RESOURCEUSAGE_CONTAINER;
lpRemoteName := @Workgroup[1];
end;
WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,@WorkgroupRS,EnumHandle );
Entries := 200;
BufSize:=SizeOf(Buf);
Rest:=WNetEnumResource(EnumHandle,Entries,@Buf[0],BufSize);
if (Rest = NO_ERROR) and (Entries > 0) then CompCount:=Entries;
WNetCloseEnum( EnumHandle );
end; { Find All Computers }

Buf это массив сетевых ресурсов первый раз вызываеш функцию с параметром "" в buf получаеш список групп, потом вызываеш с параметром "имя группы" в buf получаеш компьютеры группы, потом вызываеш с параметром "имя компютера" в buf получаеш сетевые ресурсы (диски, принтеры.).
Все.!


Наверх

Титульная страница Поиск, карта сайта Написать письмо