Obtenir une adresse IP dans une application console
-
21-08-2019 - |
Question
Je cherche à comprendre ce que mon adresse IP est d'une application de la console.
Je suis habitué à une application Web en utilisant la collection et Request.ServerVariables
/ ou Request.UserHostAddress
.
Comment cela peut-il être fait dans une application de la console?
La solution
La façon de faire est plus facile comme suit:
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();
}
}
}
Autres conseils
Essayez ceci:
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());
}
L'espace de noms System.Net est votre ami ici. En particulier, les API telles que DNS.GetHostByName.
Cependant, une machine donnée peut avoir plusieurs adresses IP (plusieurs cartes réseau, IPv4 et IPv6, etc.) il est donc pas tout à fait aussi simple question que vous posez.
IPAddress [] = addresslist Dns.GetHostAddresses (Dns.GetHostName ());
System.Net.Dns.GetHostAddresses () devrait le faire.
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;
}
}