Exemplo n.º 1
0
        /// <summary>
        /// En este evento, se mandara a ejecutar el netsh para guardar los cambios realizados
        /// a los listados de DNS , WINS y Gateways que se requieran hacer.
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bt_guardar_Click(object sender, EventArgs e)
        {
            ///Hay que validar  cuales seran modificados y si es IPv4 o IPv6 (El comando de netshl al parecer cambia)
            String[] sCol;
            if (bModificado_dns)
            {
                sCol = new String[list_dns.Items.Count];
                list_dns.Items.CopyTo(sCol, 0);
                //Si no es dinamico engase todo lo que tenemos
                if (!dns_dinamico.Checked)
                {
                    if (bVersionIP)
                    {
                        nInterfaz.setDNSv4Address(sCol);
                    }
                    else
                    {
                        nInterfaz.setDNSv6Address(sCol);
                    }
                }

                /*else if ((nInterfaz.getisDHCPv4Enabled() && bVersionIP) || (nInterfaz.getisDHCPv6Enabled() && !bVersionIP))
                 *  if (bVersionIP)                     // Version4 o vervsion6?
                 *      nInterfaz.setDNSv4Address();
                 *  else
                 *      nInterfaz.setDNSv6Address();*/
                else
                {
                    MessageBox.Show("Para poder actualizar de forma dinamica los servidores DNS debe estar habilitado el DHCP");
                }
            }
            //Se supone que estos campos solo cuando son estaticos dejan qeu se escriban
            if ((nInterfaz.getisDHCPv4Enabled() && bVersionIP))  //IPv4
            {
                if (bModificado_win)
                {
                    sCol = new String[list_wins.Items.Count];
                    list_wins.Items.CopyTo(sCol, 0);

                    nInterfaz.setWINSv4Address(sCol);
                }

                if (bModificado_gtw)
                {
                    //GatewayIPAddressInformation[] Listas = new GatewayIPAddressInformation[list_gtw.Items.Count];
                    sCol = new String[list_gtw.Items.Count];
                    list_gtw.Items.CopyTo(sCol, 0);
                    nInterfaz.setGTWv4Address(sCol);
                }
            }
            else if ((nInterfaz.getisDHCPv6Enabled() && !bVersionIP))  //IPv6
            {
                if (bModificado_win && bWINSv6)
                {
                    sCol = new String[list_wins.Items.Count];
                    list_wins.Items.CopyTo(sCol, 0);

                    nInterfaz.setWINSv6Address(sCol);
                }

                if (bModificado_gtw)
                {
                    //GatewayIPAddressInformation[] Listas = new GatewayIPAddressInformation[list_gtw.Items.Count];
                    sCol = new String[list_gtw.Items.Count];
                    list_gtw.Items.CopyTo(sCol, 0);

                    nInterfaz.SetIPv6Gateways(sCol);
                }
            }
            //y al final... cerramos el  formulario ...
            this.Close();
        }