none
Configuracion del adaptador de red RRS feed

  • Pregunta

  • Estoy realizando un pequeño programa y necesito un poco de ayuda con esta parte:

    Cargo la lista de los adaptadores de red en un ComboBox con el siguiente codigo:

     var myInterfaceAddress = NetworkInterface.GetAllNetworkInterfaces()
                .Where(n => n.OperationalStatus == OperationalStatus.Up &&
                n.NetworkInterfaceType != NetworkInterfaceType.Loopback);
                foreach (NetworkInterface adapter in myInterfaceAddress)
    
                  CbNetwork.Items.Add(adapter.Name);
    
                CbNetwork.SelectedIndex = 0;

    La idea es que al seleccionar el adaptador de red almacene en variables lo siguiente:

    • IP
    • Mascara de Subred
    • Puerta de Enlace
    • Dns
    • Dns Secundario
    • Mac Address

    Gracias de antemano por su colaboración

    domingo, 3 de mayo de 2020 16:40

Todas las respuestas

  • Te recomiendo que uses un databinding para meter en el combo el objeto completo, en lugar de solo el Name. Esto te permite después recuperar todo el objeto cuando seleccionen un valor del combo:

    private void Form1_Load(object sender, EventArgs e)
    {
        var myInterfaceAddress = NetworkInterface.GetAllNetworkInterfaces()
            .Where(n => n.OperationalStatus == OperationalStatus.Up &&
            n.NetworkInterfaceType != NetworkInterfaceType.Loopback).ToList();
        CbNetwork.DataSource = myInterfaceAddress;
        CbNetwork.DisplayMember = "Name";
        CbNetwork.SelectedIndex = -1;
    }
    
    private void CbNetwork_SelectedIndexChanged(object sender, EventArgs e)
    {
        var selected = (System.Net.NetworkInformation.NetworkInterface)CbNetwork.SelectedItem;
        // sacar aquí los valores de "selected", por ejemplo:
        string direccionMac = selected.GetPhysicalAddress().ToString();
        // ....
    }
    

    Ahí sacamos el Mac Address. Desgraciadamente, sacar la dirección IP y otros datos asociados tales como la máscara o la puerta de enlace es más complicado, dado que no vienen dentro del NetworkInterface. Y la razón de que no vengan ahí es que no son únicos: un adaptador de red puede tener asociadas muchas direcciones IP. Tendrás que pensar cómo vas a tratar esta situación.

    domingo, 3 de mayo de 2020 19:27
    Moderador
  • Gracias a ti estoy un paso mas cerca. Me ayudaste bastante, toca seguir investigando para ver como obtengo los demás datos.
    domingo, 3 de mayo de 2020 21:17
  • No sé si habrá algún método más sencillo en código gestionado, pero puedes obtener las direcciones IP mediante una consulta WMI sobre Win32_NetworkAdapterConfiguration:

    https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-networkadapterconfiguration

    Esta consulta la puedes enviar desde C# usando la clase ManagementObjectSearcher. Hay muchos ejemplos por la red, por ejemplo el método número 2 de este artículo:

    https://www.codeproject.com/Articles/5657/Finding-IP-Address-Information

    lunes, 4 de mayo de 2020 5:59
    Moderador
  • Hola

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las respuestas proporcionadas?  

     

    Gracias por usar los foros de MSDN. 

      

    Oscar Navarro

    martes, 5 de mayo de 2020 16:21
    Moderador