Поиск компьютеров в сети. Часть 2

3 минуты на чтение

В продолжении статьи по поиску компьютеров в сети, а также для проверки соединения с другим компьютером или сервером, то есть для проверки их доступности в сети (пингование) я решил написать данную статью. Для этого я подготовил похожий пример, но уже с использованием библиотеки ICS. Довольно мощная библиотека, которая поможет при работе с сетью, а также при работе с фтп-серверами. Для данной задачи нам понадобиться данная библиотека ICS, скачать ее можно тут. После того как Вы скачаете ее, установить данную библиотеку себе, а после установки появиться новая вкладка компонентов под название — FPiette, мы приступим к разработке самой программы. На данный момент из этой вкладки нам понадобится, пока что, только компонент — TPing. С помощью данного компонента мы и будем посылать на компьютер (сервер) пакет данных, размером, примерно по 32 байта. Технология поиска компьютеров в сети тоже самая, что я и описывал в прошлой статье, но с использованием только компонентов библиотеки ICS. Как Вы помните, пользователь указывает диапазон ip-адресов, которые необходимо сканировать. Также можно определить ip-адрес компьютера, на котором запущена программа, ну а если мы будем знать начало ip-адресов, то можно и самому составить диапазон сканирования. Я обратно покажу это все на конкретном ip-адресе, ну а для того, чтобы просканировать всю сеть, просто необходимо запустить все в цикл, то, что мы будем делать для конкретного ip-адреса. На каждый ip-адрес мы будем посылать, например, по 32 байта, ну а если ответ нам будет приходить (не будет никаких ошибок), то данный ip-адрес мы будем добавлять в наш список, что будет говорить о том, что данный компьютер, с таким ip-адресом, в сети существует.

Ну что, на форме у меня следующие компоненты:

  • TListBox
  • TPing
  • TButton

В TListBox мы будем выводить ip-адреса, которые существуют в сети, то есть от которых пришел ответ. Компонент TPing нам понадобится собственно для посылки пакета данных на компьютер (сервер), а также обработку ответа, который придет. На событие OnClick кнопки я написал следующий код:

procedure TForm1.Button1Click(Sender: TObject);
begin
   Ping1.Size:=32;
   Ping1.Timeout:=1000;
   Ping1.DnsLookup('localhost');
end;

С помощью Size - задаем количество байт, которые мы будет отправлять, например, на сервер.

С помощью Timeout - устанавливаем время, через которое прекращаем отправлять запрос.

С помощью DnsLookup - мы посылаем запрос на указанный хост, в данном случае мы воспользуемся localhost или 127.0.0.1.

У TPing есть событие OnDnsLookupDone, которое возникает при посылке, обработке запроса. Так вот, на данное событие мы напишем следующий код:

procedure TForm1.Ping1DnsLookupDone(Sender: TObject; Error: Word);
begin
   if Error<>0 then
    begin
     exit;
    end;
   Ping1.Address:=Ping1.DnsResult;
   ListBox1.Items.Add(Ping1.DnsResult);
   Ping1.Ping;
end;

В переменной Error содержатся ошибки, например, если хоста, на который мы посылаем запрос не существует, то Error не будет равен 0, следовательно такого хоста не существует и в данном случае мы ничего не делаем. Если хост, ip-адрес существует, то он будет в DnsResult и мы его тогда добавляем в TListBox.

Как видите при работе с библиотекой ICS, а именно с компонентом тз данной библиотеке — TPing, ничего сложного нету. Все довольно просто. Оба примера достаточно просты, которые можно использовать в своих проектах. Кстати, программа, которая работает по похожему принципу поиска компьютеров в сети (сканирование диапазона ip-адресов, посылка им запроса с последующей обработкой) называется — FriendlyNetViewer. Довольно мощная программка для работы с сетью и очень интересная.

Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Здравствуйте, в этой статье я хотел бы поговорить о том как можно найти компьютеры в сети, это является довольно распространенной проблемой. В первой части нашей статьи мы будем использовать стандартный компонент, а в следующей части мы будем использовать комп...
Здравствуйте, в этой статье, я хотел бы поговорить о том, как можно реализовать поиск слов, строк и так далее, в компонентах TRichEdit и TMemo. С данными компонентами Вы уже работали, так что нам не составит труда организовать поиск, который я задумал. Итак, ч...
Всем доброго времени суток! Продолжаем цикл статей по MapWindow GIS в Delphi. На этот раз, как и обещал, будем учиться, как организовать поиск на слоях (то есть картах). Поиск будем организовывать следующим образом: Пользователь выбирает, в каком поле искать ...