Здравствуйте!
Делаю программу для проверки работы (онлайн) компьютеров в локалке.
Гуглом и модификациями смог создать такой код:
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# всё настолько более громоздко...