使用.Net Core获取正确的客户端IP地址



大家好,我收到了客户的一个要求,要求我将客户的IP地址传递给一个反欺诈的API。我在一起工作。Net Core和C#进行web开发,我得到的客户端IP地址如下:

HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

问题是,他们告诉我,我正在传递一个本地IP地址,而不是客户端IP。

是否有其他方法可以获得所请求的正确IP?

提前感谢

您可能没有添加UseForwardedHeaders中间件。

添加UseForwardedHeaders中间件获取客户端IP地址

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

然后:

string ip = _httpContext.Connection.RemoteIpAddress.ToString();

因为当应用程序在IIS上运行时,IISHTTP请求转发到Kestrel,并且您总是获得本地IP地址,而不是客户端IP

最新更新