如何从ASP.NET中的请求中获取IP地址?

时间:2009-05-15 04:31:29

标签: c# asp.net ip-address

我一直试图解决这个问题,但在向所有服务器的asp.net页面发出请求时找不到可靠的方法来获取客户端IP地址。

7 个答案:

答案 0 :(得分:32)

一种方法是使用Request对象:

protected void Page_Load(object sender, EventArgs e)
{
    lbl1.Text = Request.UserHostAddress;
}

答案 1 :(得分:7)

 IpAddress=HttpContext.Current.Request.UserHostAddress;

答案 2 :(得分:5)

Request.ServerVariables["REMOTE_ADDR"]

要访问C#上的索引或属性,您应该使用[]而不是()

答案 3 :(得分:0)

使用此代码:

public static string GetIpAddress()
    {
        return HttpContext.Current != null ? HttpContext.Current.Request.UserHostAddress : "";
    }

答案 4 :(得分:0)

尝试以下代码:

var IpAddress = Request.Headers["Referer"][0];

答案 5 :(得分:0)

如果客户端和服务器之间有代理。可以使用 HTTP_X_FORWARDED_FOR 标头。

var ips = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
var clientIp = "";
if (!string.IsNullOrEmpty(ips))
{
    string[] addresses = ips.Split(',');
    if (addresses.Length != 0)
    {
        clientIp = addresses[0];
    }
}
else
{
    clientIp = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}

答案 6 :(得分:-1)

System.Web.HttpContext.Current.Request.UserHostAddress;