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.