如何获取服务器IP地址(在C#/asp.net中)?

如何获取服务器IP地址(在C#/asp.net中)?,c#,asp.net,C#,Asp.net,是否有一个1行方法来获取服务器的IP地址 通过搜索网络,我找到了以下代码:(我在那里找不到一行方法) ->其中index是ip地址主机(即网络连接)的索引 代码来源: 从: 返回请求传入的服务器地址。这在计算机上很重要,因为计算机上可以绑定多个IP地址,并且您希望找出请求使用的地址 这不同于与客户机相关的远程地址。正如其他人所发布的那样,这是一条可行之路。访问地址列表属性时,您需要考虑该属性,因为它可能会返回IPv4和IPv6结果。在PC上运行此代码时,此方法将返回计算机公共IP地址,在服务器上

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


通过搜索网络,我找到了以下代码:(我在那里找不到一行方法)

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

代码来源:

从:

返回请求传入的服务器地址。这在计算机上很重要,因为计算机上可以绑定多个IP地址,并且您希望找出请求使用的地址


这不同于与客户机相关的远程地址。

正如其他人所发布的那样,这是一条可行之路。访问
地址列表
属性时,您需要考虑该属性,因为它可能会返回IPv4和IPv6结果。

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

    }

您的意思是“服务器”-ASP.Net处理计算机或服务器端防火墙/gate/Proxy您需要考虑的是,可能会有许多IP地址分配给您的服务器。可能的重复,尽管这有一个更好的选择答案。我希望看到当您必须依赖
HttpRequestMessage
对象而不是经典的
HttpRequest
@SandRock时,如何继续操作-您可以查看
MS_HttpContext
属性,然后将其转换为
HttpContextBase
,这将允许访问
ServerVariables
属性。根据您在哪里执行此操作,您还可以直接获取HttpContext并以
HttpContext.Current.Request.ServerVariables[“LOCAL\u ADDR”]
(很抱歉回复太晚;))的形式查询它。是的,很多操作都隐藏在ServerVariables集合中。完美的答案-来自旧ASP经典时代,我应该记得这一点:)轻微故障:当从服务器上的浏览器点击服务器时,它解析为127.0.0.1。否则,您会喜欢它。@allbit-这可能取决于服务器上DNS的配置方式,或者您请求站点的方式-例如,如果有一个HOSTS条目将域指向127.0.0.1,以确保您只浏览本地服务器(例如在负载平衡环境中),或者您作为本地主机请求站点,则选择yes,你肯定会赢回127.0.0.1。我有其他网站在通过正确的DNS查找时报告了浏览器的正确IP地址。这显示了发送请求的服务器的地址,而不是承载网站的服务器的地址“其中索引是您的IP地址主机(即网络连接)的索引。”—这是什么意思?这种联系不再有效
Request.ServerVariables["LOCAL_ADDR"];
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";
        }

    }