如何获取服务器IP地址?

时间:2009-08-28 08:18:45

标签: c# asp.net

是否有1行方法来获取服务器的IP地址?

由于

4 个答案:

答案 0 :(得分:57)

Request.ServerVariables["LOCAL_ADDR"];

来自docs

  

返回请求所在的服务器地址。这对于可能有多个绑定到计算机的IP地址的计算机很重要,并且您想要找出请求使用的地址。

这与客户端计算机相关的远程地址不同。

答案 1 :(得分: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);

- >其中 index 是您的IP地址主机的索引(即网络连接)。

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

答案 2 :(得分:2)

正如其他人发布的那样,System.Net.Dns.GetHostEntry是要走的路。当您访问AddressList属性时,您需要考虑AddressFamily属性,因为它可能会返回IPv4和IPv6结果。

答案 3 :(得分: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";
        }

    }