有没有办法在asp.net中获取客户端机器的确切IP地址。我已经尝试过以下代码
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"];
但是这段代码有时会返回机器的确切IP地址,有时它会提供公共IP地址,如何解决这个问题
答案 0 :(得分:4)
如果客户端计算机位于NAT防火墙后面,则无法获取该地址。无论如何,这样的地址无意义,因为许多客户可能拥有相同的地址。