B/S 服務器獲取客戶端的IP地址接口。客戶端從服務器獲取自己的IP

B/S    服務器獲取客戶端的IP地址接口。客戶端從服務器獲取自己的IP

 

 public static string GetWebClientIp()
    {
        string userIP = "未獲取用戶IP";
        try
        {
            if (System.Web.HttpContext.Current == null
        || System.Web.HttpContext.Current.Request == null
        || System.Web.HttpContext.Current.Request.ServerVariables == null)
                return "";
            string CustomerIP = "";
            //CDN加速後取到的IP 
            CustomerIP = System.Web.HttpContext.Current.Request.Headers["Cdn-Src-Ip"];
            if (!string.IsNullOrEmpty(CustomerIP))
            {
                return CustomerIP;
            }
            CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];


            if (!String.IsNullOrEmpty(CustomerIP))
                return CustomerIP;

            if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
            {
                CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                if (CustomerIP == null)
                    CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }
            else
            {
                CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

            }

            if (string.Compare(CustomerIP, "unknown", true) == 0)
                return System.Web.HttpContext.Current.Request.UserHostAddress;
            return CustomerIP;
        }
        catch { }

        return userIP;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章