获取HTTP客户端的IP地址

时间:2015-01-03 01:24:17

标签: c# http header

我尝试获取向服务器发送HTTP请求的客户端的IP地址和端口。我使用了HttpListenerRequest类的属性。 UserHostAddress属性返回服务器的ip和端口,但不返回客户端。 RemoteEndPoint返回一些ip和端口,但它不是真正的客户端IP(我知道客户端请求来自端口1234)并且每次它返回不同的数据(我不知道为什么)。我怎么解决这个问题?可能是我应该在客户端设置http header From

非常感谢!

1 个答案:

答案 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;
}
相关问题