可靠的程序化互联网连接检查

时间:2017-09-29 07:52:43

标签: c#

我有一个在我们的服务器上运行的每小时诊断检查,其中包括检查服务器是否具有互联网连接。

以下是我用来ping网址的代码(来自http://stackoverflow.com/questions/11800958/using-ping-in-c-sharp),但它会在https://www.facebook.comhttps://www.google.com上产生间歇性结果。实际上,在专用托管VM和单独的Azure VM上都会遇到糟糕的结果:

public static bool PingHost(string nameOrAddress)
{
    if (nameOrAddress.IsEmpty())
        return false;

    bool pingable = false;
    Ping pinger = new Ping();
    try
    {
        var hostNameOrAddress = nameOrAddress.Replace("http://", "").Replace("https://", "")
            .Replace("/", "");
        PingReply reply = pinger.Send(hostNameOrAddress);
        pingable = reply.Status == IPStatus.Success;
    }
    catch
    {
        return false;
        // Discard PingExceptions and return false;
    }
    return pingable;
}

有什么问题是我有其他诊断检查来测试其他第三方网址,并且它们显示正常。

检查一般互联网连接的更可靠方法是什么?

0 个答案:

没有答案