如何在asp.net中获取用户IP地址?

时间:2013-11-17 05:04:19

标签: asp.net web ip-address

这是标签

 <asp:Label ID="lblIp" runat="server"></asp:Label>

此处代码我用来获取用户IP地址

 string VisitorsIPAddr = string.Empty;

            if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
            {

                VisitorsIPAddr = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
                lblIp.Text = VisitorsIPAddr;
            }
            else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
            {
                VisitorsIPAddr = HttpContext.Current.Request.UserHostAddress;
                lblIp.Text = VisitorsIPAddr;
            }

但总是得到相同的结果。那是 127.0.0.1 ,如果状态,它总是进入 else。

进一步

HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] 没有给出任何结果。它总是什么都没有

1 个答案:

答案 0 :(得分:1)

您正在自己的计算机上运行该应用程序,因为您可以在那里滑动,因此您将始终在127.0.0.1中获得else if。 如果你想看到另一个IP打开应用程序和相关端口,并使用另一台机器到达那里。

同样HTTP_X_FORWARDED_FOR并不总是存在(通常来自正常的网络请求,但也有例外)。

我认为这就是Kundan Singh Chouhan试图提出的建议,希望我没错。