获取 HTTP 客户端的 IP 地址

本文关键字:IP 地址 客户端 HTTP 获取 | 更新日期: 2023-09-27 18:35:55

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

谢谢!

获取 HTTP 客户端的 IP 地址

基于 SO 答案,我认为这会对您有所帮助......

   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;
}