如何获取通过C#使用的默认网络连接名称?

时间:2012-01-02 02:06:19

标签: c# .net network-programming

如果网络连接处于活动状态,我需要让它独立。 我只需要拨号连接。

在此图片中 Claro 是默认的netowork连接名称。

enter image description here

不知道这是怎么回事。我希望这很清楚。提前谢谢!

2 个答案:

答案 0 :(得分:2)

要查找当前选定的用于连接到Internet can be set in a couple of ways的默认连接,您需要阅读注册表项HKCU \ RemoteAccess InternetProfile。这将包含适配器的名称。

现在有趣的部分:你需要使用DotRas

在项目中下载,安装和引用后,您可以使用类似于以下内容的代码:

// Get the default adapter
string defaultAdapter = Registry.GetValue(@"HKEY_CURRENT_USER\RemoteAccess", "InternetProfile", "") as string;

foreach (RasConnection connection in RasConnection.GetActiveConnections())
{
    if (connection.EntryName.Equals(defaultAdapter, StringComparison.InvariantCultureIgnoreCase))
    {
        if (connection.GetConnectionStatus().ConnectionState == RasConnectionState.Connected)
        {
             // Do something
        }
    }
    // Done searching
    break;
}

答案 1 :(得分:0)

这就是你在寻找什么?

  using System.Net.NetworkInformation;

    class Program
    {
        static void Main(string[] args)
        {
            foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
            {

                Console.WriteLine(nic.NetworkInterfaceType);
                Console.WriteLine(nic.Name);
            }
        }
    }

如果你发现它为调制解调器的NetworkInterfaceType添加了什么字符串,那么你可以在那里放一个if语句