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.

Scroll al inicio
Abrir chat
1
Hola
¿En qué podemos ayudarte?