Для устранения данной проблемы можно создать предварительную проверку доступности компьютера, это значительно сократит время ожидания. Эту задачу позволяет эффективно решать Ping. Вам следует не забывать, что проверка доступности хоста по ICMP эхо-запросу может быть неудачной и из-за применения в сети на маршруте следования пакета фильтрующих маршрутизаторов или firewall.
Провайдер Ping предоставляет в репозиторий WMI (Microsoft Windows® Management Instrumentation) всего один класс Win32_PingStatus. Запрос к этому классу позволяет выполнить процедуру ping гораздо быстрее и проще. Этот способ не зависит от локализации операционной системы. WMI-класс Win32_PingStatus обычно возвращает объект, имеющий 24 свойства, которые предоставляют обширные сведения о пакетах ping-запросов, отправляемых классом.
Создайте проект Windows Form в Microsoft Visual Studio. Добавьте на главную форму два компонента:
- textBox1 – Текстовое поле для ввода DNS имени или IP адреса;
- button1 – Кнопка для запуска проверки доступности.
У вас получится форма примерно следующего вида:
Перейдите в листинг вашей главной формы, нажав на клавиатуре клавишу «F7» и добавьте приведенный ниже метод проверки доступности компьютера:
public static bool Ping(string Target)
{
SelectQuery query =
new SelectQuery("Win32_PingStatus",
string.Format("Address='{0}'", Target));
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(query);
foreach (ManagementObject result in searcher.Get())
{
return (result["StatusCode"] != null && (0 == (UInt32)result["StatusCode"]));
}
return false;
}
Чтобы воспользоваться данным методом, перейдите в конструктор главной формы и сделайте два клика по компоненту «button1». Перейдите в автоматически созданный метод «button1_Click» и добавьте в него следующий листинг:
if (Ping(textBox1.Text))
{
MessageBox.Show("Компьютер доступен");
}
else
{
MessageBox.Show("Компьютер не доступен");
}
Для работы вам понадобится подключить следующее пространство имен:
using System.Management;
Так же необходимо добавить ссылку на библиотеку данного пространства имен.
Для проверки кода, запустите ваш проект, нажав на клавишу «F5». Введите в текстовое поле ip адрес компьютера и нажмите на кнопку «Проверить доступность». В случае если компьютер доступен, вы увидите сообщение:
Если не доступен, то сообщение будет следующего вида:
Ссылка на исходник: Rusfolder.net
0.00 (0%) 0 votes











