1 网络请求接口时,获取ip
01.
[HttpPost]
[Route("Login")]
public HttpResponseMessage UserLogin()
{
ReturnResult result = new ReturnResult() { code = "", msg = "" };
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象
string ip=getIP();
}
02.获取ip的方法
public string getIP()
{
string ip="":
//先获取网络请求的ip
string textip=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
foreach (var hostAddress in Dns.GetHostAddresses(textip))
{
if (hostAddress.AddressFamily == AddressFamily.InterNetwork)
ip= hostAddress.ToString();
}
//如果网络ip为空,则获取局域网ip
if(ip =="")
{
foreach (var hostAddress in Dns.GetHostAddresses(Dns.GetHostName()))
{
if (hostAddress.AddressFamily == AddressFamily.InterNetwork)
ip=hostAddress.ToString();
}
}
return ip;
}
这篇博客介绍了在ASP.NET中如何通过HTTP请求获取用户IP地址。首先,通过`HttpContextBase`和`HttpRequestBase`获取请求对象,然后尝试从`HTTP_X_FORWARDED_FOR`或`REMOTE_ADDR`变量获取网络IP。如果网络IP为空,则转而获取局域网IP。该方法适用于处理代理服务器和本地网络环境的情况。
1587

被折叠的 条评论
为什么被折叠?



