本代码会执行三次ping,并返回三次ping的平均延迟,单位为毫秒,如果网络不通,返回-1。

public static long ICMPPing(string host)
{
    long roundtripTime = 0;
    try
    {
        long totalTime = 0;
        int timeout = 120;
        int echoNum = 3;
        Ping pingSender = new Ping();
        int succCount = 0;
        for (int i = 0; i < echoNum; i++)
        {
            PingReply reply = pingSender.Send(host, timeout);
            if (reply.Status == IPStatus.Success)
            {
                totalTime += reply.RoundtripTime;
                succCount++;
            }
        }
        if (succCount == 0) return -1;
        roundtripTime = totalTime / succCount;
    }
    catch
    {
        return -1;
    }
    return roundtripTime;
}


原文链接地址:http://blog.exsvc.cn/article/csharp-icmp-ping.html
转载请注明:转载自 易科博客 ,谢谢!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注