【问题标题】:Get Correct Client IP Address with .Net Core使用 .Net Core 获取正确的客户端 IP 地址
【发布时间】:2022-01-20 14:47:16
【问题描述】:

大家好,我的客户要求我将客户端 IP 地址传递给反欺诈 API。 我正在使用 .Net Core 和 C# 进行 Web 开发,我正在获取客户端 IP 地址,如下所示:

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

问题是他们告诉我我传递的是本地 IP 地址而不是客户端 IP。

还有其他方法可以获取请求的正确 IP 吗?

提前致谢

【问题讨论】:

  • 听起来他们应该改用合适的防火墙

标签: c# .net asp.net-core .net-core


【解决方案1】:

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

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

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

然后:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 2021-09-03
    • 2015-01-29
    • 2019-01-14
    • 2022-01-22
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    相关资源
    最近更新 更多