C# 无法在ASP.NET中获取服务器的IP地址

C# 无法在ASP.NET中获取服务器的IP地址,c#,asp.net,.net,asp.net-mvc,ip,C#,Asp.net,.net,Asp.net Mvc,Ip,我需要获取Asp.Net服务器的IP地址。我的意思是当我的Asp.Net应用程序运行时,拥有IIS的机器的IP 所以我在谷歌上找到了这个: 得到了这个密码: var hostName = System.Net.Dns.GetHostName(); var address = System.Net.Dns.GetHostEntry(hostName).AddressList.First().ToString(); 好。它可以完美地工作,但只能在开发和测试环境中工作。在同源环境中,变量hostNa

我需要获取Asp.Net服务器的IP地址。我的意思是当我的Asp.Net应用程序运行时,拥有IIS的机器的IP

所以我在谷歌上找到了这个:

得到了这个密码:

var hostName = System.Net.Dns.GetHostName();
var address = System.Net.Dns.GetHostEntry(hostName).AddressList.First().ToString();
好。它可以完美地工作,但只能在开发和测试环境中工作。在同源环境中,变量
hostName
获取正确的值,但
地址
获取:
“::1”

这是一根超级古怪的绳子。我甚至猜不出发生了什么事


有人能告诉我我做错了什么或者我没被看到什么吗?

关于你是否尝试了
Request.ServerVariables[“LOCAL_ADDR”]链接到的问题中的方法?如果问题有多个答案,请确保查看所有答案,以确定其中一个是否更适合您的用例。只有当它们都不合适时,你才应该问一个新问题,并且你应该说明为什么现有答案不能满足你的需要。我在应用程序启动中运行此代码,所以请求为空。(从HttpContext.Current获取)。我将尝试查找AddressList中的所有项目。Web服务器不一定知道它们的公共IP,因为它们可能位于一个或多个路由器后面(尤其是生产服务器)。您是在查找IIS站点的IP,还是在浏览器中可能会出现的公共IP(假设您没有使用主机头)?我正在查找IIS站点的IP。