在 C# 中列出 Windows 网络连接/配置文件

ant*_*tfx 3 .net c# windows winapi

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

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

Windows 网络连接

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

sta*_*ney 5

您可以使用网络列表管理器 API来执行此操作,该 API 使应用程序能够检索可用网络连接的列表。适用于.Net 的 Windows API 代码包包装了此 API,以便托管应用程序可以轻松使用它。添加 NuGet 包

Windows API 代码包 - 核心

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

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"));
    }
}
Run Code Online (Sandbox Code Playgroud)