So far I was using this code in order to get the IP Address of a client in a WEB API Message Handler (using an extension).
public static string GetClientIPAddress(this HttpRequestMessage request)
{
if (request.Properties.ContainsKey("MS_HttpContext"))
{
return ((HttpContextBase)request.Properties["MS_HttpContext"]).Request.UserHostAddress.ToString();
}
else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
{
return ((RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name]).Address.ToString();
}
else
{
return null;
}
}
However today I discovered a simpler way that works just fine but still I am a bit worried which way is better to use:
HttpContext.Current != null ? HttpContext.Current.Request.UserHostAddress : "0.0.0.0";