2009-08-28 18 views
26

Czy istnieje metoda 1-wierszowa, aby uzyskać adres IP serwera?Jak uzyskać adres IP serwera?

Dzięki

+0

Co to znaczy „serwer” - Obrabiarka ASP.Net lub po stronie serwera firewall/gate/proxy – Dewfy

+2

Trzeba wziąć pod uwagę, że może istnieć wiele adresów IP przypisanych do serwera. – UserControl

+0

Możliwy duplikat http://stackoverflow.com/q/646525/292060, mimo że ma to lepiej wybraną odpowiedź. – goodeye

Odpowiedz

54
Request.ServerVariables["LOCAL_ADDR"]; 

Z docs.

Zwraca adres serwera na którym wniosek dołączonej Jest to ważne na komputerach, gdzie może być wiele adresów IP związały się na komputerze i chcesz dowiedzieć się, który adres został użyty.

Różni się to od adresów zdalnych, które odnoszą się do komputera klienta.

+0

+1 Nice , Nie wiedziałem, że to istnieje. – Pwninstein

+0

Tak, wiele rzeczy do przekazania ukrywa się w kolekcji ServerVariables. –

+2

Doskonała odpowiedź - od dawnych dni ASP Classic, powinienem był o tym pamiętać :) –

6

Od przeszukiwania sieci znalazłem następujący kod: (nie mogę znaleźć jednej metody tam linia)

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

-> gdzie Indeks jest wskaźnik adresu ip host (np. połączenie sieciowe).

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

2

Tak jak napisali (a) inni, System.Net.Dns.GetHostEntry jest drogą do zrobienia. Po uzyskaniu dostępu do właściwości AddressList należy wziąć pod uwagę właściwość AddressFamily, ponieważ może ona zwrócić zarówno wyniki IPv4, jak i IPv6.

0

Ta metoda zwróci publiczny adres IP komputera po uruchomieniu tego kodu na komputerze, a po wdrożeniu aplikacji na serwerze zwróci adres IP serwera.

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

    } 
Powiązane problemy