3

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

我试过 WebBrowser.IsOffline;但是似乎只传递离线模式状态,而不是计算机是否真的能够访问互联网。

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

感谢你的帮助!

4

2 回答 2

6

检查 Internet 连接的最简单方法是 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; }
}

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

于 2009-09-30T20:34:58.913 回答
3

如果您只是使用Ping类来查看站点是否可用怎么办?

于 2009-09-30T20:29:43.043 回答