Как я могу получить IP-адрес клиента в ASP.NET MVC?

Я полностью плохо знаком со стеком ASP.NET MVC, и я задавался вопросом, что произошло с простым Объектом страницы и Запросом объект ServerVariables?

В основном я хочу для вытаскивания клиентского IP-адреса ПК, но мне не удается понять, как текущая структура MVC изменила все это.

Насколько я могу понять, большинство переменных объектов был заменен вариантами HttpRequest.

Кто-либо хочет совместно использовать некоторые ресурсы? Существует действительно море материала для изучения в мире MVC ASP.NET.:)

Например, у меня есть статический класс с этой текущей функцией. Как я получаю тот же результат с помощью ASP.NET MVC?

public static int getCountry(Page page)
{
    return getCountryFromIP(getIPAddress(page));
}

public static string getIPAddress(Page page)
{
    string szRemoteAddr = page.Request.ServerVariables["REMOTE_ADDR"];
    string szXForwardedFor = page.Request.ServerVariables["X_FORWARDED_FOR"];
    string szIP = "";

    if (szXForwardedFor == null)
    {
        szIP = szRemoteAddr;
    }
    else
    {
        szIP = szXForwardedFor;

        if (szIP.IndexOf(",") > 0)
        {
            string [] arIPs = szIP.Split(',');

            foreach (string item in arIPs)
            {
                if (!isPrivateIP(item))
                {
                    return item;
                }
            }
        }
    }
    return szIP;
}

И как я вызываю эту функцию от страницы контроллера?

303
задан Peter Mortensen 19 September 2016 в 10:00
поделиться

1 ответ

Request.ServerVariables ["REMOTE_ADDR"] должен работать - либо непосредственно в представлении, либо в теле метода действия контроллера (запрос является свойством Класс контроллера в MVC, а не на странице).

Это работает .. но вы должны публиковать на реальном IIS, а не на виртуальном.

168
ответ дан 23 November 2019 в 01:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: