Как в C# проверить доступность компьютера в локальной сети? Здравствуйте!
Делаю программу для проверки работы (онлайн) компьютеров в локалке.
Гуглом и модификациями смог создать такой код:private Boolean ping(String host)
{
using (var p = new Process())
{
p.StartInfo.FileName = "ping.exe";
p.StartInfo.Arguments = "-n 1 " + host;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.StandardOutputEncoding = Encoding.GetEncoding("CP866");
p.Start();
string output = p.StandardOutput.ReadToEnd();
Boolean status = output.Contains("TTL=");
return status;
}
}
Но чувствую, что это велосипед с кучей костылей...
Можно ли как-то проще и элегантнее проверить, включён ли компьютер, зная его ip?
Приложение на C# для Windows Form (.NET Framework)
P.S. в Python например это всё можно сделать парой строк:response = subprocess.call(["ping", "-c", "1", host], stdout=DNULL)
if response == 0:
print("Доступен!")
Не верится, что в C# всё настолько более громоздко...

21 Авг 2019 в 06:24
294 +1
0
Ответы
1

Да, в C# есть более простой способ проверить доступность компьютера в локальной сети, используя класс Ping из пространства имен System.Net.NetworkInformation. Ниже приведен пример кода:

using System;
using System.Net.NetworkInformation;
private bool PingHost(string host)
{
bool status = false;
Ping ping = new Ping();
try
{
PingReply reply = ping.Send(host);
if (reply.Status == IPStatus.Success)
{
status = true;
}
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
return status;
}

Этот код использует класс Ping для отправки ICMP-пакета на заданный хост и проверки статуса ответа. Если статус ответа Success, то компьютер доступен.

Вы можете вызвать функцию PingHost и передать ей IP-адрес компьютера, который вы хотите проверить на доступность.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир