【问题标题】:ASP.NET Core - Get client's IP address instead of local IPASP.NET Core - 获取客户端的 IP 地址而不是本地 IP
【发布时间】:2022-01-22 03:55:17
【问题描述】:

我正在尝试在我的 .net 后端检索客户端的 IP 地址,该后端在 Docker 中运行。

使用下面的代码 sn-p,我希望得到客户端的 IP 地址,但我得到的是 172.17.0.1,这是一些本地 IP 地址(可能是 Docker)。

public async Task Invoke(HttpContext context)
        {
            var clientIpContext = context.Connection.RemoteIpAddress?.MapToIPv4().ToString();

            ...
            
            await _next(context);
        }

希望有人可以帮忙:)

【问题讨论】:

  • 您很可能需要在上下文中找到 X-Forwarded-For 才能找出调用者的 IP 地址。
  • @Jawad 很遗憾,我只看到本地地址:ibb.co/DWpxSNX

标签: c# .net docker http ip


【解决方案1】:

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

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

【讨论】:

  • 我在 httpContext 中没有看到 X-Forwarded-For 标头。我检查了完整的请求,但我只看到本地 IP:ibb.co/5nmrRRh
猜你喜欢
  • 2020-05-16
  • 2019-12-07
  • 2015-04-24
  • 2019-01-14
  • 2020-11-29
  • 1970-01-01
  • 2020-04-29
  • 2019-11-13
相关资源
最近更新 更多