Как в 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# всё настолько более громоздко...
Да, в 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-адрес компьютера, который вы хотите проверить на доступность.
Да, в 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-адрес компьютера, который вы хотите проверить на доступность.