以下链接可能会对您有所帮助。这是来自以下链接的代码。
参考:通过asp-net-web-api获取客户端IP
using System.Net.Http;using System.ServiceModel.Channels;using System.Web;using System.Web.Http;namespace Trikks.Controllers.Api{ public class IpController : ApiController { public string GetIp() { return GetClientIp(); } private string GetClientIp(HttpRequestMessage request = null) { request = request ?? Request; if (request.Properties.ContainsKey("MS_HttpContext")) {return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress; } else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name)) { RemoteEndpointMessageProperty prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name]; return prop.Address; } else if (HttpContext.Current != null) { return HttpContext.Current.Request.UserHostAddress; } else {return null; }} }}
下面是另一种方法。
参考:如何访问客户端的IP地址
对于网络托管版本
string clientAddress = HttpContext.Current.Request.UserHostAddress;
对于自托管
object property; Request.Properties.TryGetValue(typeof(RemoteEndpointMessageProperty).FullName, out property); RemoteEndpointMessageProperty remoteProperty = property as RemoteEndpointMessageProperty;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)