ASP.Net: 获取负载均衡器环境中VMware客户端的IP地址

ASP.Net: Get IP Address of VMware client in load balancer environment

我们的配置有 2 个 IIS Web 服务器连接到 2 个 F5 负载平衡器。我们的应用程序是 ASP.Net WebForms 4.5+。下面是我们的代码。

    public static string GetIpAddress()
    {
        var localContext = HttpContext.Current;
        string ipList = localContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
        if (!string.IsNullOrEmpty(ipList))
        {
            return ipList.Split(',')[0];
        }
        return localContext.Request.ServerVariables["REMOTE_ADDR"];
    }

当使用物理计算机访问负载平衡站点时,此代码可以正常工作。使用 VDI 访问不使用负载平衡器的测试服务器也可以正常工作。

我们的问题是,当我们使用 VDI 访问负载平衡站点时,此函数 returns 服务器地址。

我们需要能够在负载平衡器环境中获取 VDI 的 IP 地址。

我们发现我们的负载平衡器配置错误,没有传递客户端 VDI IP 地址。