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?

Était-ce utile?

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;
    }    
 }

source: http://www.codeproject.com/KB/cs/network .aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top