Ottenere un indirizzo IP in un’applicazione console

Sto cercando di capire che cosa il mio indirizzo IP è un’applicazione console.

Ho utilizzato per un’applicazione web utilizzando il Request.ServerVariables di raccolta e/o Request.UserHostAddress.

Come questo può essere fatto in un’applicazione console?

InformationsquelleAutor | 2009-05-13

 

6 Replies
  1. 27

    Il modo più semplice per farlo è il seguente:

    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();
            }
        }
    }
    • Ok, vedo un sacco di risposte qui, ma pare che anche questo sia di facile lettura. Mi piace quello che Martin Peck ha detto di avere più indirizzi IP, e penso che questo qui mi dà la giusta soluzione. Mi sono imbattuto in questo locale e mi ha dato quello che volevo. Grazie mille!
    • Sì, sono d’accordo con martin, è necessario guardare fuori per più Indirizzi IP. Questo codice sarà in grado di gestirlo e si può scegliere cosa fare da lì.
    • Probabilmente si dovrebbe includere un link alla pagina che hai copiato questo codice, non credi? Voglio dire, è uno dei primi risultati su Google.
    • Hai assolutamente ragione. Mi è capitato di avere usato questo blocco di codice prima e copiato da lì, ma le risorse che ho preso da origine era qui: codeproject.com/KB/cs/network.aspx
    • Perché fare tutte queste risposte, utilizzare la notazione ungherese per strHostName, ma non di altre variabili?
  2. 3

    Provare questo:

    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());    
    }
  3. 2

    L’System.Net spazio dei nomi è il tuo amico qui. In particolare, le Api, come il DNS.GetHostByName.

    Tuttavia, qualsiasi macchina può avere più indirizzi IP (più schede di rete IPv4 e IPv6, ecc) quindi non è del tutto così semplice una questione come si posa.

    • Mi piace molto il tuo commento per avere più indirizzi ip. Sulla base di che il codice di cui sopra ha funzionato davvero bene. Grazie!
  4. 1
    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;
        }    
     }

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

Lascia un commento