Skip to content

Instantly share code, notes, and snippets.

@Injac
Created March 11, 2014 15:28
Show Gist options
  • Save Injac/9488161 to your computer and use it in GitHub Desktop.
Save Injac/9488161 to your computer and use it in GitHub Desktop.
WebApiThrottleChange
protected IPAddress GetClientIp(HttpRequestMessage request)
{
if (request.Properties.ContainsKey("MS_HttpContext"))
{
IPAddress ipAddress;
var ok = IPAddress.TryParse(((HttpContextBase)request.Properties["MS_HttpContext"]).Request.UserHostAddress,out ipAddress);
if(ok)
{
return ipAddress;
}
}
if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
{
IPAddress ipAddress;
var ok = IPAddress.TryParse(((RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name]).Address, out ipAddress);
if(ok)
{
return ipAddress;
}
}
if (request.Properties.ContainsKey("MS_OwinContext"))
{
IPAddress ipAddress;
var ok = IPAddress.TryParse(((Microsoft.Owin.OwinContext)request.Properties["MS_OwinContext"]).Request.RemoteIpAddress, out ipAddress);
if (ok)
{
return ipAddress;
}
}
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment