private double PacketLossTestSignleRun(IPAddress destinationIpAddress) { var options = new PingOptions { DontFragment = true }; var data = new char[_bufferSizeInBytes]; for (var i = 0; i < _bufferSizeInBytes; i++) { data[i] = 'a'; } var buffer = Encoding.ASCII.GetBytes(data); int failed = 0; for (int i = 0; i < _pingCount; i++) { var reply = Icmp.Send(this._networkInterface.IpAddress, destinationIpAddress, _timeoutInMsec, buffer, options); if (reply.Status != IPStatus.Success) { failed += 1; Logger.Logger.AddMessage($"Ping status for {i} - {reply.Status.ToString()} ", MessageThreshold.WARNING); } } return(((double)failed / _pingCount) * 100); }
private double ResponseTimeSingleTest(IPAddress destinationAddress) { double meanLatency = 0; var pingReply = Icmp.Send(this._networkInterface.IpAddress, destinationAddress, _timeoutInMsec); for (int i = 0; i < _pingCount; i++) { if (pingReply == null) { continue; } pingReply = Icmp.Send(this._networkInterface.IpAddress, destinationAddress); if (pingReply != null) { meanLatency += pingReply.RoundTripTime.TotalMilliseconds; } } return(meanLatency / _pingCount); }