как получить имя сетевого подключения по умолчанию, используемое через C #? - PullRequest
1 голос
/ 02 января 2012

Мне нужно получить его независимым, если сетевое соединение активно или нет.Мне нужно получить только коммутируемое соединение.

на этой картинке Claro - это имя сетевого соединения по умолчанию.

enter image description here

Понятия не имею, как это сделать.этот.Надеюсь, это понятно.Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 02 января 2012

Чтобы найти текущее выбранное по умолчанию соединение для подключения к Интернету, которое можно установить двумя способами , вам необходимо прочитать раздел реестра 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;
}
0 голосов
/ 02 января 2012

это то, что вы ищете?

  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

...