Obter o endereço IP do cliente que está se conectando a um aplicativo C # .NET WebAPI

Eu tentei:

private const string HttpContext = "MS_HttpContext";
private const string RemoteEndpointMessage = "System.ServiceModel.Channels.RemoteEndpointMessageProperty";

public static string GetClientIpAddress(HttpRequestMessage request)
{
    if (request.Properties.ContainsKey(HttpContext))
    {
        dynamic ctx = request.Properties[HttpContext];
        if (ctx != null)
        {
            return ctx.Request.UserHostAddress;
        }
    }

    if (request.Properties.ContainsKey(RemoteEndpointMessage))
    {
        dynamic remoteEndpoint = request.Properties[RemoteEndpointMessage];
        if (remoteEndpoint != null)
        {
            return remoteEndpoint.Address;
        }
    }

    return null;
}

de acordo com:

Recuperando o endereço IP do cliente na API da Web do ASP.Net

essa é a abordagem combinada que deve ser válida para host próprio e host de webapi. Infelizmente eu recebonull em vez do endereço IP.

Estou tentando localmente, então eu esperaria127.0.0.1 oulocalhost como o endereço IP

questionAnswers(1)

yourAnswerToTheQuestion