26

我一直试图弄清楚这一点,但在向 asp.net 中适用于所有服务器的页面发出请求时,找不到可靠的方法来获取客户端 IP 地址。

4

8 回答 8

36

一种方法是使用 Request 对象:

protected void Page_Load(object sender, EventArgs e)
{
    lbl1.Text = Request.UserHostAddress;
}
于 2009-05-15T04:37:50.300 回答
8
 IpAddress=HttpContext.Current.Request.UserHostAddress;
于 2015-07-02T20:59:49.990 回答
5
Request.ServerVariables["REMOTE_ADDR"]

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

于 2009-05-15T04:36:29.100 回答
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"];
}
于 2021-02-11T11:12:39.300 回答
0

您可以将 HttpContext 与以下属性一起使用:

var _request1 = HttpContext.Current.Request.UserHostAddress;
        string requestedDomain = HttpContext.Current.Request.ServerVariables["HTTP_HOST"];
        string requestScheme = HttpContext.Current.Request.Url.Scheme;
        string requestQueryString = HttpContext.Current.Request.ServerVariables["QUERY_STRING"];
        string requestUrl = HttpContext.Current.Request.ServerVariables["URL"];
于 2021-09-24T06:22:38.927 回答
0
System.Web.HttpContext.Current.Request.UserHostAddress;
于 2017-11-01T07:49:23.320 回答
0

试试这个代码:

var IpAddress = Request.Headers["Referer"][0];
于 2020-07-16T16:33:58.063 回答
0

使用此代码:

public static string GetIpAddress()
    {
        return HttpContext.Current != null ? HttpContext.Current.Request.UserHostAddress : "";
    }
于 2017-08-01T09:31:48.373 回答