首页 > Web开发 > 详细

负载均衡的场景下ASP.NET Core如何获取客户端IP地址

时间:2016-10-18 13:41:23      阅读:397      评论:0      收藏:0      [点我收藏+]

在ASP.NET中,使用负载均衡时,可以通过ServerVariables获取客户端的IP地址。

var ip = request.ServerVariables["HTTP_X_FORWARDED_FOR"];

但在ASP.NET Core中没有ServerVariables的对应实现,需要换一种方式,可以在HttpContext.Request.Headers中获取,需要注意的是key与ServerVariables方式不一样,ServerVariables中是"HTTP_X_FORWARDED_FOR",HttpContext.Request.Headers中是"X-Forwarded-For",示例代码如下:

var ip = context.Request.Headers["X-Forwarded-For"].FirstOrDefault();

完整的扩展方法实现如下:

public static class HttpContextExtension
{
    public static string GetUserIp(this HttpContext context)
    {
        var ip = context.Request.Headers["X-Forwarded-For"].FirstOrDefault();
        if (string.IsNullOrEmpty(ip))
        {
            ip = context.Connection.RemoteIpAddress.ToString();
        }
        return ip;
    }
}

负载均衡的场景下ASP.NET Core如何获取客户端IP地址

原文:http://www.cnblogs.com/dudu/p/5972649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!