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

本文关键字:代理 是否 IP 地址 用户 | 更新日期: 2023-09-27 18:02:35

请参阅以下代码:

    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_IPAddress = Request.ServerVariables["REMOTE_ADDR"];

Client_IPAddress = Request.UserHostAddress;

User_IPAddress = Request.ServerVariables["REMOTE_HOST"];
下线或中线是其他线的替代线吗?
请给我们解释一下这些产品好吗?
有什么不同?

2 -
User_IPAddress = IP_Array[LatestItem - 1];

User_IPAddress = IP_Array[0];

我应该用哪一行?
请您解释一下这些线条好吗?

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

我不知道类,但机会是请求。UserHostAddress是Request.ServerVariables["REMOTE_ADDR"]的别名。REMOTE_HOST也可以是主机名,但大多数情况下只是ipaddress。

x - forward - for的格式为client1, proxy1, proxy2。所以你想要第二个。User_IPAddress = IP_Array[0];

只要记住"因为x - forward - for字段很容易伪造,所以应该小心使用给定的信息。"