这是标签
<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"]
没有给出任何结果。它总是什么都没有
答案 0 :(得分:1)
您正在自己的计算机上运行该应用程序,因为您可以在那里滑动,因此您将始终在127.0.0.1
中获得else if
。
如果你想看到另一个IP打开应用程序和相关端口,并使用另一台机器到达那里。
同样HTTP_X_FORWARDED_FOR
并不总是存在(通常来自正常的网络请求,但也有例外)。
我认为这就是Kundan Singh Chouhan试图提出的建议,希望我没错。