我尝试获取向服务器发送HTTP请求的客户端的IP地址和端口。我使用了HttpListenerRequest
类的属性。 UserHostAddress
属性返回服务器的ip和端口,但不返回客户端。 RemoteEndPoint
返回一些ip和端口,但它不是真正的客户端IP(我知道客户端请求来自端口1234)并且每次它返回不同的数据(我不知道为什么)。我怎么解决这个问题?可能是我应该在客户端设置http header From
?
非常感谢!
答案 0 :(得分:1)
基于SO answer,我认为这会对你有所帮助......
protected void GetUser_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();
}
else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
{
VisitorsIPAddr = HttpContext.Current.Request.UserHostAddress;
}
uip.Text = "Your IP is: " + VisitorsIPAddr;
}