【问题标题】:Get user IP Address获取用户 IP 地址
【发布时间】:2014-09-27 17:37:03
【问题描述】:

我有一个具有登录名的 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 地址。如果我错了,请纠正我。有任何想法吗?谢谢!

【问题讨论】:

标签: c# asp.net ip-address


【解决方案1】:

使用 -

HttpContext.Current.Request.UserHostAddress

【讨论】:

    【解决方案2】:

    两个都试试:

    HttpContext.Current.Request.UserHostAddress;
    

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

    【讨论】:

      【解决方案3】:

      您可以使用 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?

      【讨论】:

        猜你喜欢
        • 2011-02-06
        • 2012-06-12
        • 2015-03-23
        • 2013-08-01
        • 2014-08-23
        • 2019-01-14
        • 2013-09-21
        • 2021-09-03
        • 2018-03-30
        相关资源
        最近更新 更多