有没有什么办法来检查在Linux使用单声道的互联网连接状态
用Mono + gtk打开默认浏览器#
附加到webapi响应的404响应
在Windows上运行单声道应用程序而不input“mono filename.exe”?
控制台项目无法在Ubuntu上的MonoDevelop 6.3中运行
如何在Linux上开发.NET Micro Framework?
如果是桌面应用程序,则可以使用NDesk.DBus库在d-bus上查询NetworkManager(这是大多数Linux桌面上的网络连接管理器)。
看到Banshee的例子: http : //git.gnome.org/cgit/banshee/tree/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs
除了Michael为桌面应用程序建议的内容之外,您还可以执行如下操作:
foreach (NetworkInterface ni in networkinformation.GetAllNetworkInterfaces ()) { // Check that any or all of: // -ni.OperationalStatus == OperationalStatus.Up // -that ni.NetworkInterfaceType is ethernet or wireless80211 // -ni.GetIPProperties() has a gateway and a DNS server // ... }
不管你最终使用什么,都不可靠。
我总是用Windows Vista和7在家中看到它。 我使用家庭网络,所以我的电脑总是“连接”。 但是,他们并不总是连接到互联网。
也就是说,我会建议像Gonzalo所说的那样检查网络接口。 这是你最好的选择。
我不会依赖NetworkManager。 我讨厌那件事,只要我能把它关掉。 这个庞大而笨拙的名字,依赖于HAL和DBUS这样的垃圾。 早期的版本会永久性地让我失望,因为除非您登录到GUI,否则它们不起作用。 它还收集了无线的bug,在一个开源操作系统中完全荒谬的应该只是修复了原来的错误。 这导致其他的WiFi管理员和命令行无法正常工作,人们被告知使用NetworkManager,只是因为从来没有人打扰修复实际的错误!
您可以尝试根据需要打开连接。 如果失败,则显示错误消息。 或者,如果您确实需要进行一般性检查(例如在应用程序启动时),则可以尝试向一个或多个无所不在的网站(如google.com)发出HTTP请求。 (或什么协议,你的意思是“互联网”)。
看看HttpWebRequest 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。