This is what I recommend for checking if a remote host is pingable.
This code is from a diagnostics tool which runs in production for many years.
public static bool Ping(string host) { for (int pass = 0; pass < 3; ++pass) { try { Ping pingSender = new Ping(); PingReply reply = pingSender.Send(host); if (reply.Status == IPStatus.Success) return true; } catch (Exception) { return false; } } return false; }