阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

218次阅读
没有评论

共计 689 个字符,预计需要花费 2 分钟才能阅读完成。

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

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/139468.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计689字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中