Como posso obter o endereço IP do cliente no asp.net MVC?

Sou totalmente novo na pilha do ASP.NET MVC e queria saber o que aconteceu com o objeto Page simples e o objeto Request ServerVariables?

Basicamente, quero extrair o endereço IP do PC cliente, mas não consigo entender como a estrutura atual do MVC mudou tudo isso.

Tanto quanto eu posso entender,a maioria dos objetos variáveis foi substituída pelas variantes HttpRequest.

Alguém gostaria de compartilhar alguns recursos? Existe realmente um monte de coisas para aprender no mundo do ASP.NET MVC. :)

Por exemplo, eu tenho uma classe estática com esta função atual. Como obtenho o mesmo resultado usando o 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;
}

E como eu chamo essa função na página do controlador?

questionAnswers(6)

yourAnswerToTheQuestion