你好,伙计们,我从客户端得到了一个要求,要求我将客户端IP地址传递给反欺诈API。我正在进行with.Net Core和C#的web开发工作,我得到的客户机IP地址如下:
HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();问题是,他们告诉我,我传递的是本地IP地址,而不是客户机IP。
是否还有其他方法来获得所请求的正确的IP?
提前谢谢
发布于 2021-12-17 18:10:34
您可能没有添加UseForwardedHeaders中间件。
添加UseForwardedHeaders中间件以获取客户端IP地址
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});然后:
string ip = _httpContext.Connection.RemoteIpAddress.ToString();因为当应用程序在IIS上运行时,IIS将HTTP请求转发给Kestrel,并且总是得到本地IP地址,而不是客户机IP。
https://stackoverflow.com/questions/70397182
复制相似问题