在 C# 中列出 Windows 网络 connections/profiles

List Windows network connections/profiles in C#

有人可以指点我 class 以列出 Windows 计算机(XP、Vista、7、8、8.1)上安装的 C# 中的当前网络配置文件吗?

我基本上想要以下列表及其连接状态:

我看过 NetworkInterface.GetAllNetworkInterfaces() 函数,但显然只是 returns 物理适配器,我正在寻找的是网络配置文件。

您可以使用 Network List Manager API which enables applications to retrieve the list of available network connections. The Windows API Code Pack for .Net 包装此 API 来做到这一点,以便托管应用程序可以轻松使用它。添加 NuGet 包

Windows API Code Pack - Core

调用以下函数列出网络配置文件:

public void ListNetworkProfiles()
{
    NetworkCollection nCollection = NetworkListManager.GetNetworks(NetworkConnectivityLevels.All);
    foreach (Network net in nCollection)
    {
        Console.WriteLine("Name: " + net.Name + " Status: " + (net.IsConnected ? "Connected" : "Not Connected"));
    }
}