Victor_M
@Victor_M
Системный аналитик

Как в 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# всё настолько более громоздко...
  • Вопрос задан
  • 2889 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы