我正在尝试在我的数据库中检索客户端的IP地址。net后端,它正在Docker中运行。
使用下面的代码片段,我希望得到客户机的IP地址,但是我得到了172.17。0.1
,这是一些本地IP地址(可能是Docker)。
public async Task Invoke(HttpContext context)
{
var clientIpContext = context.Connection.RemoteIpAddress?.MapToIPv4().ToString();
...
await _next(context);
}
我希望有人能帮忙:)
我不太熟悉docker,但是在HTTP请求上转发的大多数代理将用原始的原始IP地址填充X-Forwarded-For标头。
您可以检查该标头的传入请求,看看您的客户端IP地址是否在那里。