Forked from MikeJansen/HttpRequestMessageHelper.cs
Last active
August 29, 2015 14:25
-
-
Save mishrsud/84ee9d5e55d128287762 to your computer and use it in GitHub Desktop.
HttpRequestMessage.GetClientIpAddress for ASP.NET MVC 4 / Web API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Original idea: http://stackoverflow.com/questions/9565889/get-the-ip-address-of-the-remote-host | |
using System.Net.Http; | |
using System.ServiceModel.Channels; | |
using System.Web; | |
namespace CrowSoftware.Api | |
{ | |
public static class HttpRequestMessageHelper | |
{ | |
public static string GetClientIpAddress(this HttpRequestMessage request) | |
{ | |
if (request.Properties.ContainsKey("MS_HttpContext")) | |
{ | |
return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress; | |
} | |
else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name)) | |
{ | |
RemoteEndpointMessageProperty prop; | |
prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name]; | |
return prop.Address; | |
} | |
else | |
{ | |
return null; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment