C# 在ASP.NET Web API消息处理程序中获取客户端的IP地址,哪个选项更好
到目前为止,我使用这段代码是为了在使用扩展的WebAPI消息处理程序中获取客户端的IP地址C# 在ASP.NET Web API消息处理程序中获取客户端的IP地址,哪个选项更好,c#,asp.net-web-api,ip-address,C#,Asp.net Web Api,Ip Address,到目前为止,我使用这段代码是为了在使用扩展的WebAPI消息处理程序中获取客户端的IP地址 public static string GetClientIPAddress(this HttpRequestMessage request) { if (request.Properties.ContainsKey("MS_HttpContext")) { return ((HttpContextBase)req
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;
}
}
然而,今天我发现了一种简单的方法,效果很好,但我仍然有点担心哪种方法更好:
HttpContext.Current != null ? HttpContext.Current.Request.UserHostAddress : "0.0.0.0";
可能重复:。更好的方法取决于您的web api如何在IIS上托管web主机、使用OWIN自托管或自托管。托管在Windows Azure网站IIS中。。。所以我想我以前使用它的方式是正确的!