我们正在开发一个打包的WebBrowser组件。如果用户联机,我们希望显示一个页面(例如oursite.com/thispage.html),如果用户脱机,我们希望显示另一个页面(例如c:\somewhere\thispage_offline.html)。我可以正确显示这两个页面,但我的问题是检测在线/离线状态。
我试过 WebBrowser.IsOffline 但是,似乎只中继离线模式状态,而不是计算机是否能够真正连接到互联网。
有没有一种方法可以从WebBrowser组件中检测到这一点?有什么办法吗?
谢谢你的帮助!
检查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 class 将请求发送到网站上的一个简单页面,并查看它是否成功。这是一个更好的选择,因为它还将确保在服务器上运行IIS(或Apache)。
WebRequest
如果你只是使用 Ping 类来查看站点是否可用?