提问者:小点点

ASP. NET Core-获取客户端的IP地址而不是本地IP


我正在尝试在我的数据库中检索客户端的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);
        }

我希望有人能帮忙:)


共1个答案

匿名用户

我不太熟悉docker,但是在HTTP请求上转发的大多数代理将用原始的原始IP地址填充X-Forwarded-For标头。

您可以检查该标头的传入请求,看看您的客户端IP地址是否在那里。