asp .net 獲取客戶端IP地址,瀏覽器類型及版本號以及使用的平臺名稱

    /// <summary>
    /// 獲取客戶端IP地址(無視代理)
    /// </summary>
    /// <returns>若失敗則返回回送地址</returns>
    public static string GetHostAddress()
    {
        if (System.Web.HttpContext.Current == null || System.Web.HttpContext.Current.Request == null || System.Web.HttpContext.Current.Request.ServerVariables == null)
            return "";
        string userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
        if (string.IsNullOrEmpty(userHostAddress))
        {
            if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
                userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim();
        }
        if (string.IsNullOrEmpty(userHostAddress))
        {
            userHostAddress = HttpContext.Current.Request.UserHostAddress;
        }

        //最後判斷獲取是否成功,並檢查IP地址的格式(檢查其格式非常重要)
        if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress))
        {
            return userHostAddress;
        }
        return "127.0.0.1";
    }


    /// <summary>
    /// 檢查IP地址格式
    /// </summary>
    /// <param name="ip"></param>
    /// <returns></returns>
    public static bool IsIP(string ip)
    {
        return System.Text.RegularExpressions.Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
    }

    /// <summary>
    /// 獲取瀏覽器類型及版本號
    /// </summary>
    /// <returns></returns>
    public string GetClientBrowserVersions()
    {
        string browserVersions = string.Empty;
        HttpBrowserCapabilities hbc = HttpContext.Current.Request.Browser;
        string browserType = hbc.Browser.ToString();     //獲取瀏覽器類型
        string browserVersion = hbc.Version.ToString();    //獲取版本號
        browserVersions = browserType + browserVersion;
        return browserVersions;
    }


    /// <summary>
    /// 獲取客戶端使用的平臺名稱
    /// </summary>
    /// <returns></returns>
    public string GetClient()
    {
        string browserClient = string.Empty;
        HttpBrowserCapabilities hbc = HttpContext.Current.Request.Browser;
        string patform = hbc.Platform;     //客戶端使用的平臺名稱       
        browserClient = patform;
        return browserClient;
    }

 

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