使用HTTP_X_FORWARDED_FOR获取当前的客户端IP地址?

时间:2018-10-10 09:15:34

标签: c# http networking server ip-address

我需要获取加载应用程序的用户的当前ip地址。我曾尝试使用过这种方法。它可以正常工作,但有时它会以2405:204:71c7:d1b5 :: 1e9b:90a5的格式获取HTTP_X_FORWARDED_FOR的值。需要获取IPV4地址。

protected string GetIPAddress()
    {
        System.Web.HttpContext context = System.Web.HttpContext.Current;
        string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

        if (!string.IsNullOrEmpty(ipAddress))
        {
            string[] addresses = ipAddress.Split(',');
            if (addresses.Length != 0)
            {
                return addresses[0];
            }
        }
        return context.Request.ServerVariables["REMOTE_ADDR"];
    }

0 个答案:

没有答案