[英]X-Forwarded-For: How can I get the client's IP address in ASP.Net MVC?
[英]How can I get a client's local IP address, like 192.168.0.1?
我已经尝试过Stack Overflow问题中的所有解决方案如何在ASP.NET中获取用户的客户端IP地址? 。 它为我提供服务器的IP地址,而不是客户端的LAN IP地址。
我需要获取客户端的本地IP地址,它必须被视为192.168.2.1,但我总是得到服务器的IP地址而不是它。
这是我的代码:
System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["LOCAL_ADDR"];
有一个网站这样做, http://net.ipcalf.com/ 。
我该如何解决这个问题?
您需要远程地址,而不是本地地址
context.Request.ServerVariables["REMOTE_ADDR"]
您的代码抓取服务器IP地址,而不是客户端。 请尝试以下方法:
此代码是从Stack Overflow问题中复制的, 如何在ASP.NET中获取用户的客户端IP地址? 。
protected string GetIPAddress()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.