2009-08-28 10 views
26

Esiste un metodo a 1 riga per ottenere l'indirizzo IP del server?Come ottenere l'indirizzo IP del server?

Grazie

+0

quello che vuoi dire "server" - macchine per la lavorazione ASP.Net o lato server firewall/gate/Proxy – Dewfy

+2

È necessario prendere in considerazione che ci possono essere molti indirizzi IP assegnati al server. – UserControl

+0

Possibile duplicato di http://stackoverflow.com/q/646525/292060, anche se questo ha una risposta selezionata migliore. – goodeye

risposta

54
Request.ServerVariables["LOCAL_ADDR"]; 

Dal docs:.

Restituisce l'indirizzo del server in cui la richiesta è venuto in Questo è importante nei computer in cui non ci può essere più indirizzi IP associati a il computer, e vuoi scoprire quale indirizzo ha usato la richiesta.

Questo è diverso dagli indirizzi remoti che si riferiscono alla macchina client.

+0

+1 Nice , Non sapevo che esistesse. – Pwninstein

+0

Sì, un sacco di cose che si nascondono nella collezione ServerVariables. –

+2

Risposta perfetta - dai vecchi giorni ASP Classic, avrei dovuto ricordarmelo :) –

6

dalla ricerca in rete ho trovato il codice che segue: (non ho potuto trovare un metodo singola linea c'è)

string myHost = System.Net.Dns.GetHostName(); 

// Show the hostname 

MessageBox.Show(myHost); 

// Get the IP from the host name 

string myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[index].ToString(); 

// Show the IP 

MessageBox.Show(myIP); 

-> dove indice è l'indice del tuo indirizzo ip host (cioè connessione di rete).

Codice da: http://www.geekpedia.com/tutorial149_Get-the-IP-address-in-a-Windows-application.html

2

Come altri (s) hanno inviato, System.Net.Dns.GetHostEntry è la strada da percorrere. Quando si accede alla proprietà AddressList, è necessario prendere in considerazione la proprietà AddressFamily, in quanto potrebbe restituire sia i risultati IPv4 che IPv6.

0

Questo metodo restituirà l'indirizzo IP pubblico della macchina quando si esegue questo codice sul PC e quando si distribuisce l'applicazione sul server verrà restituito l'indirizzo IP del server.

public static string Getpublicip() 
    { 
     try 
     { 
      string externalIP = ""; 
      var request = (HttpWebRequest)WebRequest.Create("http://icanhazip.com.ipaddress.com/"); 
      var response = (HttpWebResponse)request.GetResponse(); 
      var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

      externalIP = new WebClient().DownloadString("http://icanhazip.com"); 
      return externalIP; 

     } 
     catch (Exception e) 
     { 

      return "null"; 
     } 

    } 
Problemi correlati