我只是想在 POST 之后在 .net-core 控制器中获取客户端 IP 地址。我们在客户端和服务器之间有一个负载平衡器。
我的启动中的设置:
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
并配置:
app.UseForwardedHeaders();
然后我尝试调用下面的代码,但它返回负载均衡器 IP 地址,而不是客户端 IP:
var clientIpAddress = HttpContext.Connection.RemoteIpAddress.ToString();
我已经尝试了可以在此网站和文档上搜索的所有内容,但似乎没有任何效果。我也尝试过使用HttpContext.Request.Headers["X-Forwarded-For"]
which 返回 null / empty。
我们的 OPS 团队说 IP 没有被平衡器修改,并且应该在 x-Forwarded-For 标头的值中。为什么负载均衡器发回它的 IP 而不是客户端 IP 地址?