c# - tutorial - Obtener dirección IP en una aplicación de consola
console visual studio 2017 (6)
Estoy buscando averiguar cuál es mi dirección IP desde una aplicación de consola.
Estoy acostumbrado a una aplicación web utilizando la colección Request.ServerVariables
y / o Request.UserHostAddress
.
¿Cómo se puede hacer esto en una aplicación de consola?
El espacio de nombres de System.Net es tu amigo aquí. En particular, APIs como DNS.GetHostByName.
Sin embargo, cualquier máquina dada puede tener múltiples direcciones IP (múltiples NIC, IPv4 e IPv6, etc.) por lo que no es una pregunta tan simple como la que plantea.
IPAddress [] addresslist = Dns.GetHostAddresses (Dns.GetHostName ());
La forma más fácil de hacer esto es la siguiente:
using System;
using System.Net;
namespace ConsoleTest
{
class Program
{
static void Main()
{
String strHostName = string.Empty;
// Getting Ip address of local machine...
// First get the host name of local machine.
strHostName = Dns.GetHostName();
Console.WriteLine("Local Machine''s Host Name: " + strHostName);
// Then using host name, get the IP address list..
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine("IP Address {0}: {1} ", i, addr[i].ToString());
}
Console.ReadLine();
}
}
}
Prueba esto:
String strHostName = Dns.GetHostName();
Console.WriteLine("Host Name: " + strHostName);
// Find host by name IPHostEntry
iphostentry = Dns.GetHostByName(strHostName);
// Enumerate IP addresses
int nIP = 0;
foreach(IPAddress ipaddress in iphostentry.AddressList) {
Console.WriteLine("IP #" + ++nIP + ": " + ipaddress.ToString());
}
System.Net.Dns.GetHostAddresses () debe hacerlo.
using System;
using System.Net;
public class DNSUtility
{
public static int Main (string [] args)
{
String strHostName = new String ("");
if (args.Length == 0)
{
// Getting Ip address of local machine...
// First get the host name of local machine.
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine''s Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}
// Then using host name, get the IP address list..
IPHostEntry ipEntry = DNS.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString ());
}
return 0;
}
}