C# Ping网络检测网络通断
class Program
{
static async Task Main(string[] args)
{
bool ret = await PingNet("192.168.2.205");
Console.ReadKey();
}
/// <summary>
/// ping网络,检测网络通断
/// </summary>
/// <param name="ip">ip地址</param>
/// <param name="num">ping的次数</param>
/// <param name="timeout">每次ping的超时</param>
/// <returns>bool true:通 false:不通</returns>
static async Task<bool> PingNet(string ip, int num = 10, int timeout = 2000)
{
List<bool> pingRets = new List<bool>(); //ping 结果
Ping pingSender = new Ping();
for (int i = 0; i < num; i++)
{
PingReply replyRet = await pingSender.SendPingAsync(ip, timeout);
if (replyRet.Status == IPStatus.Success)
pingRets.Add(true);
else
pingRets.Add(false);
Thread.Sleep(50);
}
if (pingRets.Contains(true))
return true;
else
return false;
}
参考