C# 用户IP地址,是否使用代理

C# 用户IP地址,是否使用代理,c#,asp.net,proxy,ip-address,C#,Asp.net,Proxy,Ip Address,请参阅以下代码: private string GetUserIPAddress() { string User_IPAddress = string.Empty; string User_IPAddressRange = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (string.IsNullOrEmpty(User_IPAddressRange))//without P

请参阅以下代码:

    private string GetUserIPAddress()
    {
        string User_IPAddress = string.Empty;
        string User_IPAddressRange = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
        if (string.IsNullOrEmpty(User_IPAddressRange))//without Proxy detection
        {
            User_IPAddress = Request.ServerVariables["REMOTE_ADDR"];
            //or
            //Client_IPAddress = Request.UserHostAddress;
            //or
            //User_IPAddress = Request.ServerVariables["REMOTE_HOST"];
        }
        else////with Proxy detection
        {
            string[] splitter = { "," };
            string[] IP_Array = User_IPAddressRange.Split(splitter,
                                                          System.StringSplitOptions.None);

            int LatestItem = IP_Array.Length - 1;
            User_IPAddress = IP_Array[LatestItem - 1];
            //User_IPAddress = IP_Array[0];
        }
        return User_IPAddress;
    }
在以下情况下:
1-

User\u IPAddress=Request.ServerVariables[“REMOTE\u ADDR”]

Client\u IPAddress=Request.UserHostAddress

User\u IPAddress=Request.ServerVariables[“远程主机”]
下一行或中间行是其他行的替代行吗?
您能给我们解释一下这些线路吗?
有什么区别

2-
User_IPAddress=IP_数组[LatestItem-1]

User\u IPAddress=IP\u数组[0]

我应该使用哪一行?

请您解释一下这些行好吗?

我不知道类,但可能是Request.UserHostAddress是Request.ServerVariables[“REMOTE\u ADDR”]的别名。此外,远程主机将是主机名,但在大多数情况下,将只是ipaddress

X-Forwarded-For的格式为client1、proxy1、proxy2。所以你想要第二个。User_IPAddress=IP_数组[0]


请记住“

合并问题,请不要删除此问题。