IP-адрес пользователя, используя прокси или нет - PullRequest
2 голосов
/ 13 июля 2011

Пожалуйста, смотрите следующие коды:

    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];

Какую строку мне использовать?
Не могли бы вы дать объяснениеоб этих строках?

1 Ответ

1 голос
/ 15 июля 2011

Я не знаю класс, но есть вероятность, что Request.UserHostAddress является псевдонимом Request.ServerVariables ["REMOTE_ADDR"].Также REMOTE_HOST будет именем хоста, но в большинстве случаев будет просто ipaddress.

Формат X-Forwarded-For - это client1, proxy1, proxy2.Итак, вы хотите второй.User_IPAddress = IP_Array [0];

Просто запомните " Поскольку поле X-Forwarded-For легко подделать, данная информация должна использоваться с осторожностью. "

...