在ASP.NET MVC iis中获取客户端的IP地址

时间:2019-10-24 05:38:56

标签: asp.net-mvc

使用iis时,我使用以下代码

 string ip = HttpContext.Current.Request.UserHostAddress;

重播IP 192.168.1.1 指导我

1 个答案:

答案 0 :(得分:0)

我们可以使用HttpRequest.ServerVariables来获取ASP.NET MVC中客户端的IP地址。 REMOTE_ADDR变量提供客户端的IP地址。

您可以直接在控制器页面上使用以下方法,并从您的视图或任何需要的位置调用它。

public string GetIp()  
{  
    string ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];  

if (string.IsNullOrEmpty(ip))  
{  
    ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];  
}  
    return ip;  
}  

以上方法返回客户端IP地址。最好使用此方法,而不是Request.UserHostAddress(),因为UserHostAddress有时可能会捕获用户代理的IP地址。

HttpRequest.ServerVariables不仅获取IP地址,还返回有关客户端浏览器的其他元数据以及其他详细信息,包括有关客户端浏览器,服务器,用户和URL的详细信息。某些常见的元数据包括服务器名称,服务器软件,服务器端口,登录用户,Cookie信息,标头信息,HTTPS信息,经过身份验证的用户和身份验证方法,等等。