Вопрос № 77433: Здравствуйте, уважаемые эксперты. Имеется локальная сеть. Как получить список компьютеров и их IP, которые подключены в данный момент?...
Вопрос № 77.433
Здравствуйте, уважаемые эксперты. Имеется локальная сеть. Как получить список компьютеров и их IP, которые подключены в данный момент?
Отправлен: 07.03.2007, 23:05
Вопрос задал: Bingo (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, Bingo!
Обратимся к помощи великого DelphiWorld, на этом портале я Вам просто советую прочитать такие статьи:
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 07.03.2007, 23:33 Оценка за ответ: 5 Комментарий оценки: Гениально!!!
Отвечает: Zolton007
Здравствуйте, Bingo!
Вот код. Может поможет =)
Как найти все компьютеры в рабочей группе
--------------------------------------------------------------------------------
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;
[http://delphiworld.narod.ru]
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 4-ый класс)
Ответ отправлен: 08.03.2007, 20:03 Оценка за ответ: 5 Комментарий оценки: Cпасибо. Тоже пойдет.