¿Cómo puedo obtener la dirección IP del cliente en ASP.NET MVC?

Soy totalmente nuevo en la pila ASP.NET MVC, y me preguntaba qué pasó con el simple objeto Page y el objeto Request ServerVariables.

Básicamente, quiero extraer la dirección IP de la PC cliente, pero no entiendo cómo la estructura MVC actual ha cambiado todo esto.

Por lo que puedo entender,La mayoría de los objetos variables han sido reemplazados por las variantes HttpRequest.

¿Alguien quiere compartir algunos recursos? Realmente hay un mar de cosas para aprender en el mundo ASP.NET MVC. :)

Por ejemplo, tengo una clase estática con esta función actual. ¿Cómo obtengo el mismo resultado con 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;
}

¿Y cómo llamo a esta función desde la página del controlador?

Respuestas a la pregunta(6)

Su respuesta a la pregunta