試しましたRequest.UserHostAddress;
が、APIコントローラーのRequest内にUserHostAddressがありません。
質問する
17462 次
3 に答える
19
IP = ((HttpContextBase)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
于 2012-09-27T11:37:59.920 に答える
10
私は次のコードを使用しています、そしてそれは私のために働きます....
string ipAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
于 2013-10-20T04:38:41.660 に答える
8
これによると、より完全な方法は次のようになります。
private string GetClientIp(HttpRequestMessage request)
{
if (request.Properties.ContainsKey("MS_HttpContext"))
{
return ((HttpContext)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
}
else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
{
RemoteEndpointMessageProperty prop;
prop = (RemoteEndpointMessageProperty)this.Request.Properties[RemoteEndpointMessageProperty.Name];
return prop.Address;
}
else
{
return null;
}
}
以前は、MVC 3プロジェクト(APIではない)では、次のものを使用していました。
string IPAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (String.IsNullOrEmpty(IPAddress))
IPAddress = Request.ServerVariables["REMOTE_ADDR"];
于 2013-05-27T14:53:42.887 に答える