我已经在Stack Overflow问题 How to get a user's client IP address in ASP.NET? 中尝试了所有解决方案。它为我提供了服务器的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/。
如何解决此问题?
答案 0 :(得分:1)
您需要远程地址,而不是本地地址
context.Request.ServerVariables["REMOTE_ADDR"]
答案 1 :(得分:-2)
您的代码抓取服务器IP地址,而不是客户端。请尝试以下方法:
此代码是从Stack Overflow问题 How to get a user's client IP address in ASP.NET? 中复制的。
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"];
}