Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用mono检查linux中的internet连接?_C#_Linux_Mono - Fatal编程技术网

C# 使用mono检查linux中的internet连接?

C# 使用mono检查linux中的internet连接?,c#,linux,mono,C#,Linux,Mono,是否有任何方法可以使用mono检查linux中的internet连接状态?如果需要,您可以尝试打开连接。如果失败,则显示错误消息。 或者,如果您确实需要常规检查(例如,在应用程序启动时),您可以尝试向一个或多个无所不在的网站(如google.com)发出HTTP请求。(或者你所说的“互联网”是指什么协议) 签出。如果是桌面应用程序,您可以使用NDesk.DBus库通过d总线查询NetworkManager(大多数Linux桌面上的网络连接管理器) 请参见Banshee的示例:除了Michael已

是否有任何方法可以使用mono检查linux中的internet连接状态?如果需要,您可以尝试打开连接。如果失败,则显示错误消息。 或者,如果您确实需要常规检查(例如,在应用程序启动时),您可以尝试向一个或多个无所不在的网站(如google.com)发出HTTP请求。(或者你所说的“互联网”是指什么协议)


签出。

如果是桌面应用程序,您可以使用NDesk.DBus库通过d总线查询NetworkManager(大多数Linux桌面上的网络连接管理器)


请参见Banshee的示例:

除了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
       // ...
}

不管你最终使用什么,它都不可靠

我在家里用WindowsVista和7一直都能看到它。我使用家庭网络,所以我的计算机总是“连接”的。然而,它们并不总是连接到互联网

也就是说,我建议检查网络接口,正如冈萨罗所说。这是你最好的选择


我不会指望网络经理在场。我讨厌那东西,只要有可能就把它关掉。它是巨大的,笨拙的,有一个丑陋的名字,依靠像哈尔和DBUS这样的垃圾。早期版本永久性地让我感到厌烦,因为除非您登录到GUI,否则它们无法工作。它还收集了wifi的漏洞解决方法,这些方法在开源操作系统中是完全荒谬的,而开源操作系统本应修复最初的漏洞。这导致其他wifi管理器和命令行无法正常工作,人们被告知使用NetworkManager,只是因为没有人费心修复实际的错误

我需要一些类似于windowsHttpWebRequest中InternetGetConnectedState API的东西,有时会被防火墙阻止。事实上,该目录中的大多数文件可能都是您感兴趣的:例如,Wicd是另一个相当常见的网络管理器,也可以通过DBU访问。