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