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

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

Как определить все IP адреса включенных компов в локальной сети. [D5, Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2

Yrasikombo ©   (2003-09-29 14:56:00) 

Очень нужно!!! И пожалуйста, если можно, весь текст модуля или кидайте прямо на Yza@mail.kz


Sirus   (2003-10-02 07:29:00) [1]

По моему вполне нормальный вопрос.
Как получить список машин в сети?

unit Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
ComCtrls;

type
TFormMain = class(TForm)
TreeView: TTreeView;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure LoadNetResources;
procedure EnumSubResources(Items: TTreeNodes; Node: TTreeNode;
lpNetResource: PNetResource);
public
{ Public declarations }
end;

var
FormMain: TFormMain;

implementation

{$R *.DFM}

procedure TFormMain.FormCreate(Sender: TObject);
begin
LoadNetResources;
end;

procedure TFormMain.LoadNetResources;
begin
with TreeView.Items do
begin
BeginUpdate;
Clear;
Add(nil, "Вся сеть");
EnumSubResources(TreeView.Items, Item[0], nil);
EndUpdate;
end;
end;

procedure TFormMain.EnumSubResources(Items: TTreeNodes; Node: TTreeNode;
lpNetResource: PNetResource);
const
MAX_RES = 16;
type
PResources = ^TResources;
TResources = array[0..MAX_RES-1] of TNetResource;
var
hEnum: THandle;
Count: Integer;
Res: Integer;
Resources: PResources;
BufferSize: Integer;
I: Integer;
NewNode: TTreeNode;
NewNodeName: String;
begin
// Открываем доступ к перечню сетевых ресурсов
Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0,
lpNetResource, hEnum);
if NO_ERROR <> Res then
Exit;
// Массив, в который читаются сетевые ресурсы
BufferSize := SizeOf(TResources);
GetMem(Resources, BufferSize);
while True do
begin
// Загружаем перечень ресурсов в массив
// Если возникла ошибка, значит, ресурсов больше нет --- покидаем
цикл
Count := MAX_RES;
Res := WNetEnumResource(hEnum, Count, Resources, BufferSize);
if (Res <> NO_ERROR) and (Res <> ERROR_MORE_DATA) then
Break;
// В противном случае копируем сетевые ресурсы в дерево
for I := 0 to Count - 1 do
begin
// Добавляем дочерний узел
if Assigned(Resources^[I].lpRemoteName) then
NewNodeName := String(Resources^[I].lpRemoteName)
else
NewNodeName := String(Resources^[I].lpComment);
NewNode := Items.AddChild(Node, NewNodeName);
// Вызываем процедуру рекурсивно для заполнения этого узла,
// если узел содержит подузлы
if (Resources^[I].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
EnumSubResources(Items, NewNode, @(Resources^[I]));
end;
end;
FreeMem(Resources);
// Закрываем доступ
WNetCloseEnum(hEnum);
end;

end.


Anatoly Podgoretsky   (2003-10-01 21:44:00) [2]

И невидимых снаружи


Fay   (2003-10-01 21:34:00) [3]

причём разных
8)


Digitman   (2003-10-01 12:13:00) [4]


> Yrasikombo


а с чего ты вообще взял, что каждый компьютер в лок.сети обязан иметь IP-адрес ?

компьютер в лок.сети может как вообще не иметь оного адреса, так и иметь оных косой десяток, причем - разных)


Woolen   (2003-10-01 10:28:00) [5]


> В великом Казахстане

:-))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))


Yrasikombo   (2003-09-30 19:08:00) [6]

В великом Казахстане и гор та путем нет, одна степь, понятно.


Palladin   (2003-09-30 18:12:00) [7]


> Yrasikombo (30.09.03 17:12) [22]

ну вот, пришел, всех послал отдыхать, и ушел...
ишь ты... наполеон...


Е-Моё имя   (2003-09-30 17:21:00) [8]

в kz нет пальм вроде ;))


GH@ST   (2003-09-30 17:19:00) [9]

>Е-Моё имя ©
Может с пальмы?


Е-Моё имя   (2003-09-30 17:15:00) [10]

так вот и бывает- спустился с гор, нашел решение и обратно на горы полез...


Yrasikombo   (2003-09-30 17:12:00) [11]

Нашелся знаток. А решение то имеет. Я и без вас уже нашел.


Anatoly Podgoretsky   (2003-09-30 15:11:00) [12]

Yrasikombo (30.09.03 13:53) [13]
Так ты не понял, что задача в такой постановке решения не имеет.


Verg   (2003-09-30 14:55:00) [13]


> такие вопросы раз в неделю задаются


Иногда они НЕ задаются толко раз в неделю...


Е-Моё имя   (2003-09-30 14:50:00) [14]

Удалено модератором
Примечание: Не хами


Yrasikombo   (2003-09-30 14:46:00) [15]

"Е-Моё имя" отдыхай. Надоел. Если не знаешь, то так и скажи.


Е-Моё имя   (2003-09-30 14:16:00) [16]


> [16] Yrasikombo (30.09.03 14:15)

ок
щас найду некрофил-затейник__а, возьму лопату да начну копать...


Yrasikombo   (2003-09-30 14:15:00) [17]

Удалено модератором


Е-Моё имя   (2003-09-30 14:07:00) [18]


> [11] Yrasikombo (30.09.03 13:39)

могу копать
могу не копать


Mero   (2003-09-30 14:07:00) [19]

Удалено модератором


Yrasikombo   (2003-09-30 13:53:00) [20]

Anatoly отдохни.


Страницы:   1 2

Наверх

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