获取用户IP地址

时间:2014-08-05 06:22:36

标签: c# asp.net ip-address

我有一个登录的Web应用程序。现在我想要的是在登录时获得该最终用户的IP地址。我已经尝试过研究,但根据我的理解,它获取我的机器的IP而不是登录的人。此应用程序已部署在服务器上。如果我按照他们说的做,我将获得服务器的IP地址。但我想要登录的最终用户的IP地址。

这是我见过的样本。

private string GetIP()
{
    string strHostName = "";
    strHostName = System.Net.Dns.GetHostName();

    IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);

    string ipaddress =convert.tostring(ipEntry.AddressList[2]);

    return ipaddress.tostring();

}

我不确定我是否理解这一点,但我认为这将获得本地IP地址,而不是登录的最终用户的IP地址。如果我错了,请纠正我。有任何想法吗?谢谢!

3 个答案:

答案 0 :(得分:9)

使用 -

HttpContext.Current.Request.UserHostAddress

答案 1 :(得分:2)

试试两个:

HttpContext.Current.Request.UserHostAddress;

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

答案 2 :(得分:1)

您可以使用Request.ServerVariables中的REMOTE_ADDR和HTTP_X_FORWARDED_FOR。

UserHostAddress属性只是REMOTE_ADDR服务器变量的包装器。因此,如果您的用户位于代理(或路由器)后面,则只返回一个IP地址,即代理(或路由器)的IP地址。

红色:http://haacked.com/archive/2006/10/11/A_Gotcha_Identifying_the_Users_IP_Address.aspx/

stackoverflow中还有另一个线程:How to Get IP Address?