在访问.aspx页面时,我尝试了各种方法来获取我的IP地址。我通过AT& T蜂窝热点设备连接,我得到的IP地址不正确。如果我谷歌“我的IP地址是什么”谷歌得到它正确。我知道这是因为我试图通过我的防火墙访问某些东西,我需要我的IP地址而且它无法正常工作。我确认谷歌的确是正确的。但他们为什么不同?我浏览了网络上的各种资源,有些人得到了我在.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"];
}
我也尝试过简单的httpContext.Current.UserHostAddress,它也会返回错误的IP地址。