How to get a user's client IP address in ASP.NET?

前端 未结 19 2605
时光取名叫无心
时光取名叫无心 2020-11-22 00:26

We have Request.UserHostAddress to get the IP address in ASP.NET, but this is usually the user\'s ISP\'s IP address, not exactly the user\'s machine IP address

19条回答
  •  故里飘歌
    2020-11-22 00:53

    If you are using CloudFlare, you can try this Extension Method:

    public static class IPhelper
    {
        public static string GetIPAddress(this HttpRequest Request)
        {
            if (Request.Headers["CF-CONNECTING-IP"] != null) return Request.Headers["CF-CONNECTING-IP"].ToString();
    
            if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null) return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    
            return Request.UserHostAddress;
        }
    }
    

    then

    string IPAddress = Request.GetIPAddress();
    

提交回复
热议问题