Obtener las IPs (IPv4 y IPv6) de tu equipo

Puede que desde tu aplicación necesites conocer cuáles son las direcciones IP que dispone tu equipo. Con el siguiente código obtendrás la lista de IPs de forma rápida y fácil. Puedes incluirla en cualquiera de tus clases como una utilidad más.

El código:

        /// <summary>

        /// Obtiene la lista de IPs de tu equipo (IPv4 y IPv6)

        /// </summary>

        /// <returns></returns>

        public static List<string> GetIPs()

        {

            StringBuilder sb = new StringBuilder();

            List<string> myIps = new List<string>();

            try

            {

                var hostName = Dns.GetHostName();

                IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName());

                foreach (IPAddress address in addresses)

                {

                    myIps.Add(address.ToString());

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message, “Test”, MessageBoxButtons.OK, MessageBoxIcon.Error);

                return null;

            }

            return myIps;

        }

Para ponerlo a prueba puedes implementar el siguiente código en algún formulario o en alguna entrada de menú. Lo normal es que esté integrada en tu aplicación, pero de alguna manera había que probarlo.

En el siguiente código, si bien recibimos las IPs IPv4 e IPv6, vamos a filtrar la lista para mostrar únicamente la IPv4 (que es la que nos resulta más comprensible), así aprovechamos para darle un vistazo a las expresiones regulares.

        private void obtenerIPLocalesToolStripMenuItem_Click(object sender, EventArgs e)

        {

            string sRegExIPv4 = @”((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)”;

            Regex r = new Regex(sRegExIPv4);

            List<string> ips = MyClase.GetIPs();

            if (ips != null)

            {

                string cad = “IPv4 locales:”;

                foreach (string c in ips)

                {

                    foreach (Match m in r.Matches(c))

                    {

                        if (m.Success)

                        {

                            cad += Environment.NewLine + c;

                        }

                    }

                }

                MessageBox.Show(cad, “Test”, MessageBoxButtons.OK, MessageBoxIcon.Information);

            }

        }

Si le pones una parada en la línea siguiente a la obtención de las IPs puedes inspeccionar la variable de lista ips para comprobar lo que efectivamente estás recibiendo.

El resultado del método debería ser parecido al siguiente:

Siempre puedes abrir una ventana de comandos y ejecutar IPCONFIG para verificar que el resultado recibido por la función es correcto.

Ponlo a prueba, piensa en cómo mejorarlo y comparte con nosotros tus progresos.

¿Te gustaría aprender a programar en .NET sobre AutoCAD?

Si te inscribes recibirás un cupón de descuento adicional con el que el coste del curso quedará reducido al 50%. También tendrás opción a recibir soporte técnico en programación sobre AutoCAD o Bricscad por correo electrónico sin coste.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Información básica sobre protección de datos Ver más

  • Responsable: MTB Software de Ponent, SLU.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Hostinet, SL que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Ir arriba
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver Política de cookies
Privacidad