检测是否脱机 - 在C#WebBrowser组件中?

Nic*_*win 2 c# browser offline webbrowser-control

我们正在处理一个包装好的WebBrowser组件.如果用户在线,我们要显示一个页面(例如oursite.com/thispage.html),如果用户离线,我们要显示另一个页面(例如C:\ somewhere\thispage_offline.html).我能够正确显示两个页面,但我的问题是检测在线/离线状态.

我试过 WebBrowser.IsOffline ; 但是,似乎只能中继离线模式状态,而不是计算机是否真的能够到达互联网.

有没有办法从WebBrowser组件中检测到这个?有办法吗?

感谢你的帮助!

SLa*_*aks 6

检查互联网连接的最简单方法是ping您的服务器.

试试这段代码:

public static bool IsOnline() {
    var pinger = new Ping();

    try {
        return pinger.Send("oursite.com").Status == IPStatus.Success;
    } catch(SocketException) { return false; } catch(PingException) { return false; }
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以尝试使用WebRequest该类将请求发送到您网站上的简单页面,看看它是否成功.这是一个更好的选择,因为它还将确保IIS(或Apache)在服务器上运行.