我通过以下代码获取 IP 地址:
var remoteIpAddress = HttpContext?.Connection?.RemoteIpAddress?.ToString ();
当我在 IIS 上运行并通过 IP 地址(我的 ISP 网络的公共 IP 地址)访问时,这可以正常工作。
我在另一台服务器上托管,但映射到域名(由于 IIS 上有多个网站托管,无法通过 IP 访问)。
它工作正常,只是没有获得客户端访问的远程 IP 地址。
另外,我尝试了 Microsoft 推荐的以下代码,但它不起作用。
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});