c# - 为什么 GetIsNetworkAvailable() 总是返回 true?

标签 c# windows networking

我有这个方法:

public static void testConnection()
    {
        if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
        {
            System.Windows.MessageBox.Show("This computer is connected to the internet");
        }
        else
        {
            System.Windows.MessageBox.Show("This computer is not connected to the internet");
        }
    }

我想它会告诉我连接是否可用,但它总是返回 true(并打印第一条消息),即使我确定没有连接。我做错了什么?

P.S.:我还在学习 C#。

最佳答案

我觉得这个方法比较合适:

   public static bool getIsInternetAccessAvailable()
    {
        switch(NetworkInformation.GetInternetConnectionProfile().GetNetworkConnectivityLevel())
        {
            case NetworkConnectivityLevel.InternetAccess:
                return true;
            default:
                return false;
        }
    }

关于c# - 为什么 GetIsNetworkAvailable() 总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13457407/

相关文章:

c# - 如何在不在 csproj 中链接到项目的情况下引用项目?

java - Apache Spark 错误使用 hadoop 将数据卸载到 AWS S3

php - wkhtmltopdf 窗口错误

c++ - 获取当前聚焦窗口的可执行名称?

python-3.x - 如何修复 'Can' t 分配请求的地址'。即使我在 mac 上用 python 尝试了许多不同的端口

linux - Hadoop:每个namenode和datanode只存在一瞬间

javascript - 如何在 MVC 的 C# 中使用本地 IP 地址扫描客户机的开放端口?

c# - 将用户定义的函数添加到 Visual Studio Excel 加载项

c# - 将 PivotItem 转换为 Usercontrol 以提高 WP7 中的加载性能

macos - 用于 USB 系绳和 WiFi 的 OSX 链接聚合?