有个需求:用户异常预警。如果用户当前登录不是上一次的电脑登录就提示用户。账号异常,并告知用户上一次登录IP地址是多少。
问题:服务器有负债均衡。
string HostName = string.Empty;
string ip = string.Empty;
string ipv4 = String.Empty;
if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]))
ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
if (string.IsNullOrEmpty(ip))
ip = System.Web.HttpContext.Current.Request.UserHostAddress;
//// 利用 Dns.GetHostEntry 方法,由获取的 IPv6 位址反查 DNS 纪录,<br> // 再逐一判断何者为 IPv4 协议,即可转为 IPv4 位址。
foreach (System.Net.IPAddress ipAddr in System.Net.Dns.GetHostEntry(ip).AddressList)
{
if (ipAddr.AddressFamily.ToString() == "InterNetwork")
{
ipv4 = ipAddr.ToString();
}
}
return ipv4;
以上代码只能获取 负债均衡的服务器IP地址。请问有什么好的办法解决获取用户的IP.