2009-08-28 270 views
26

是否有1行方法來獲取服務器的IP地址?如何獲取服務器IP地址?

感謝

+0

你是什麼意思「服務器」 - ASP.Net加工機或服務器端防火牆/門/代理 – Dewfy 2009-08-28 08:23:53

+2

你需要考慮到有可能分配給您的服務器多個IP地址。 – UserControl 2009-08-28 08:28:28

+0

http://stackoverflow.com/q/646525/292060可能有重複,儘管這有更好的選擇答案。 – goodeye 2014-12-20 04:49:55

回答

54
Request.ServerVariables["LOCAL_ADDR"]; 

docs

返回在其請求進來的服務器地址這是計算機上的重要哪裏有可以綁定多個IP地址計算機,並且你想知道請求使用了哪個地址。

這不同於與客戶端計算機相關的遠程地址。

+0

+1 Nice ,我不知道那是存在的。 – Pwninstein 2009-08-28 08:39:09

+0

是的,很多事情都隱藏在ServerVariables集合中。 – 2009-08-28 09:13:49

+2

完美的答案 - 從舊的ASP經典日子裏,我應該記住這一個:) – 2009-08-31 05:09:22

6

從搜索網,我發現下面的代碼:(我無法找到有單行法)

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

- >其中指數是您的IP地址的索引主機(即網絡連接)。

代碼來自:http://www.geekpedia.com/tutorial149_Get-the-IP-address-in-a-Windows-application.html

0

當您在PC上運行此代碼時,此方法將返回您的計算機公用IP地址,並且您在服務器上部署應用程序時將返回服務器IP地址。

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

    }