private async Task <ICMPResult> ICMPTest(Server server) { Logging.Debug("Ping " + server.FriendlyName()); if (server.server == "") { return(null); } var result = new ICMPResult(server); try { var IP = Dns.GetHostAddresses(server.server) .First( ip => ip.AddressFamily == AddressFamily.InterNetwork || ip.AddressFamily == AddressFamily.InterNetworkV6); var ping = new Ping(); foreach (var _ in Enumerable.Range(0, Repeat)) { try { var reply = await ping.SendTaskAsync(IP, TimeoutMilliseconds); if (reply.Status.Equals(IPStatus.Success)) { result.RoundtripTime.Add((int?)reply.RoundtripTime); } else { result.RoundtripTime.Add(null); } //Do ICMPTest in a random frequency Thread.Sleep(TimeoutMilliseconds + new Random().Next() % TimeoutMilliseconds); } catch (Exception e) { Logging.Error($"An exception occured while eveluating {server.FriendlyName()}"); Logging.LogUsefulException(e); } } } catch (Exception e) { Logging.Error($"An exception occured while eveluating {server.FriendlyName()}"); Logging.LogUsefulException(e); } return(result); }
private async Task<ICMPResult> ICMPTest(Server server) { Logging.Debug("Ping " + server.FriendlyName()); if (server.server == "") return null; var result = new ICMPResult(server); try { var IP = Dns.GetHostAddresses(server.server) .First( ip => ip.AddressFamily == AddressFamily.InterNetwork || ip.AddressFamily == AddressFamily.InterNetworkV6); var ping = new Ping(); foreach (var _ in Enumerable.Range(0, Repeat)) { try { var reply = await ping.SendTaskAsync(IP, TimeoutMilliseconds); if (reply.Status.Equals(IPStatus.Success)) { result.RoundtripTime.Add((int?) reply.RoundtripTime); } else { result.RoundtripTime.Add(null); } //Do ICMPTest in a random frequency Thread.Sleep(TimeoutMilliseconds + new Random().Next()%TimeoutMilliseconds); } catch (Exception e) { Logging.Error($"An exception occured while eveluating {server.FriendlyName()}"); Logging.LogUsefulException(e); } } } catch (Exception e) { Logging.Error($"An exception occured while eveluating {server.FriendlyName()}"); Logging.LogUsefulException(e); } return result; }