/// <summary> /// Cuando se manda a llamar este evento al presionar el boton bt_ipv6_dirrecion_actualizar /// se desea reactualizar las dirreciones sea con una nueva oferta de DHCP o con /// una rneovacion a la dirrecion enlace local. /// NOTA: Como IPv6 puede causar mucho revuelo se ejecutara un RESET antes de estos comandos. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void bt_ipv6_dirrecion_actualizar_Click(object sender, EventArgs e) { BoxInterfasesRedes bxInterfas = (BoxInterfasesRedes)box_lista_interfases.SelectedItem; //En teoria solo debe de pasar con dos posibilidades, pero nos aseugramos //de que solo sea en esos dos casos. if (!((rd_ipv6_dhcp.Checked) || (rd_ipv6_plugplay.Checked))) { return; } if (rd_ipv6_dhcp.Checked) { ValidarOperacionInterfas(bxInterfas.setNewDHCPClient(false)); } else if (rd_ipv6_plugplay.Checked) { ValidarOperacionInterfas(bxInterfas.SetIPv6_PlugPlay()); } //En ambos casos se recomienda esperar algo de tiempo... //Plug&Play requiere los mensajes de NDP, DHCPv6 requiere respuesta del servidor Contador.Tick += new EventHandler(Tick_RefreshInterface); // Everytime timer ticks, timer_Tick will be called //Contador.Interval = (1000) * (1); // Timer will tick evert second Contador.Enabled = true; // Enable the timer Contador.Start(); // Start the timer }
/// <summary> /// Cuando el usuario da clic en el boton ipv4_bt_dhcprenew el objetivo es renovar /// la IP con una nueva solicitud desde un cliente DHCP. Por medio de Netsh se hara tal cosa. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ipv4_bt_dhcprenew_Click(object sender, EventArgs e) { BoxInterfasesRedes bxInterfas = (BoxInterfasesRedes)box_lista_interfases.SelectedItem; //Aunque se supone que solo se puede dar clic cuando el boton esta disponible //garantizamos que sea cuando el usuario esta trabajando con IPv4 dinamica. if (!ipv4_dinamica.Checked) { return; } ValidarOperacionInterfas(bxInterfas.setNewDHCPClient(true)); //NOTA: Aqui suelen morir los que solo programan Software... el comando se ejecuta // en nanosegundos, pero obviamente la respuesta del servidor llegara en milisegundos // DEBEMOS ESPERAR para obtener una respuesta satisfactoria. Contador.Tick += new EventHandler(Tick_RefreshInterface); // Everytime timer ticks, timer_Tick will be called //Contador.Interval = (1000) * (1); // Timer will tick evert second Contador.Enabled = true; // Enable the timer Contador.Start(); // Start the timer }