Я хочу выяснить, какой у меня IP-адрес из консольного приложения.
Я привык к веб-приложению, используя коллекцию Request.ServerVariables и / или Request.UserHostAddress.
Request.ServerVariables
Request.UserHostAddress
Как это можно сделать в консольном приложении?
Самый простой способ сделать это следующим образом:
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(); } } }
Попробуйте это:
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()); }
IPAddress [] addresslist = Dns.GetHostAddresses (Dns.GetHostName ());
Пространство имен System.Net - ваш друг здесь. В частности, такие API, как DNS.GetHostByName.
Однако любой компьютер может иметь несколько IP-адресов (несколько сетевых карт, IPv4, IPv6 и т. Д.), Поэтому вопрос не так прост, как вы задаете.
System.Net.Dns.GetHostAddresses () должен это сделать.
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; } }
источник: http://www.codeproject.com/KB/cs/network.aspx