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

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

Как получить список всех IP адресов локальной сети [D6, Win2k]


Progh ©   (2005-06-22 09:16:00) 

Как получить список всех IP адресов локальной сети ?


DelphiN!   (2005-06-22 13:20:00) [1]

function TForm1.Ping(_Host: String): Boolean;
var
 wsadt : wsadata;
 Host :PHostEnt;
 Destino :in_addr;
 Retorno :integer;
begin
 Retorno := WSAStartup($0101,wsadt);
 if (Retorno <> 0) then
 begin
   Result := false;
   WSACleanup();
   exit;
 end;
 Destino.S_addr := inet_addr(Pchar(_Host));
 if (Destino.S_addr = 0) then
   Host := GetHostbyName(PChar(_Host))
 else
   Host := GetHostbyAddr(@Destino,sizeof(in_addr), AF_INET);
 if (host = nil) then
 begin
   Result := false;
   WSACleanup();
   exit;
 end
 else
   Result := true;
 WSACleanup();
end;

var
 strl: TStringList;
 i: Integer;
begin
 try
   strl := TStringList.Create;
   for i := 1 to 126 do
     if ping('198.162.0.'+IntToStr(i)) then
       strl.Add('198.162.0.'+IntToStr(i));
   ShowMessage(strl.text);
 finally
   strl.Free;
 end;
end.

Что-то типо того


Rouse_   (2005-06-22 13:00:00) [2]

По всей видимости он имеет ввиду что сетка может быть 192.168.2.0 и к примеру 192.168.3.0.
Отсюда следует к примеру взять свой IP адрес и на основе ссылки, которую привел > Digitman ©   (22.06.05 10:04) [1]узнать, что откуда и куда...


Digitman   (2005-06-22 11:08:00) [3]


> Мне текущую подсеть просканировать (255 адресов всего)


[Robert Hart (hartr@interweft.com.au). Перевод Александр Ермолаев (ave@asplinux.ru)]

Организация IP-подсетей
Robert Hart
hartr@interweft.com.au
Перевод: Александр Ермолаев, ASPLinux
...

Классы сетей
Имеются три класса IP адресов

IP адрес сети класса A использует крайние левые 8 битов (первый байт) для идентификации сети, оставшиеся 24 бита (три байта) идентифицируют сетевые интерфейсы компьютера в сети. Адреса класса A всегда имеют крайний левый бит, равный нулю - поэтому первый байт адреса принимает значения от 0 до 127. Так доступно максимум 128 номеров для сетей класса A, с каждым, содержащим до 33,554,430 возможных интерфейсов. Однако, сети 0.0.0.0 (известный как заданный по умолчанию маршрут) и 127.0.0.0 (зарезервированы для организации обратной связи (loopback)) имеют специальные предназначения и не доступны для использования, чтобы идентифицировать сети. Соответственно, могут существовать только 126 номеров для сети класса A.

IP адрес сети класса B использует крайние левые 16 битов (первые 2 байта) для идентификации сети, оставшиеся 16 бит идентифицируют сетевые интерфейсы компьютера в сети. Адреса класса B всегда имеют крайние левые два бита, установленные в 1 0. Сети класса B имеют диапазон от 128 до 191 для первого байта, каждая сеть может содержать до 32,766 возможных интерфейсов.

IP адрес сети класса C использует крайние левые 24 бита для идентификации сети, оставшиеся 8 бит идентифицируют сетевые интерфейсы компьютера в сети. Адрес сети класса C всегда имеет крайние левые 3 бита, установленные в 1 1 0 или диапазон от 192 до 255 для крайнего левого байта. Имеется, таким образом, 4,194,303 номеров, доступных для идентификации сети класса C, каждая может содержать до 254 сетевых интерфейса. (однако, сети класса C с первым байтом, большим, чем 223, зарезервированы и недоступны для использования).

Резюме:

Класс сети   Пригодный для использования диапазон
               A                 1 - 126
               B               128 - 191
               C               192 - 254


Progh   (2005-06-22 10:58:00) [4]

Мне текущую подсеть просканировать (255 адресов всего). Да и компы все эти я сам настраивать буду, так что откликаться все должны(если включены), да и подавления сканирования небудет

Пример проверки отклика от определенного IP адреса ниуко нет ?(клиента естественно там моего нет).


Anatoly Podgoretsky   (2005-06-22 10:53:00) [5]

Progh   (22.06.05 10:50) [6]
Просканировать можно, а ты представляешь это диапазон, так он от 0.0.0.0 до 255.255.255.255 и при том ни один компьютер не давал никаких обязательств реагировать на твое сканирование, также не давал обязательств по активному подавлению подобной акции.


Progh   (2005-06-22 10:50:00) [6]

IP адреса физических компьютеров. Как это не узнать ? А просканировать нельзя диапазон ? Я просто пример хотел найти, чтобы не писать все самому


Anatoly Podgoretsky   (2005-06-22 10:39:00) [7]

Progh   (22.06.05 10:32) [3]
Что ты считаешь подсетью, диапазон адресов или физические компьютеры. Но в общем случае никак и даже админстратор сети не поможет.


Progh   (2005-06-22 10:38:00) [8]


> [1] Digitman ©   (22.06.05 10:04)


А на Delphi ниукого примера нет, ото я в этом бейсике не разбираюсь


Progh   (2005-06-22 10:32:00) [9]

Как что такое ?

Как получить список IP адресов компьютеров, входящих в текущую подсеть


Anatoly Podgoretsky   (2005-06-22 10:28:00) [10]

Progh   (22.06.05 09:16)  
А что это такое? Дай разъяснение.


Digitman   (2005-06-22 10:04:00) [11]

http://www.sources.ru/vb/vb_ip_subnet.shtml


Наверх

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