获取远程主机的IP地址
在ASP.NET中,有一个System.Web.HttpRequest
类,其中包含ServerVariables
可以从REMOTE_ADDR
属性值提供IP地址的属性。
但是,我找不到从ASP.NET Web API获取远程主机IP地址的类似方法。
如何获得发出请求的远程主机的IP地址?
回答:
可以这样做,但不是很容易发现-您需要使用传入请求中的属性包,而需要访问的属性取决于您是在IIS(网络托管)还是自托管下使用Web
API。下面的代码显示了如何完成此操作。
private string GetClientIp(HttpRequestMessage request){
if (request.Properties.ContainsKey("MS_HttpContext"))
{
return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
}
if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
{
RemoteEndpointMessageProperty prop;
prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name];
return prop.Address;
}
return null;
}
以上是 获取远程主机的IP地址 的全部内容, 来源链接: utcz.com/qa/398473.html