溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在.NET中獲取客戶端的操作系統(tǒng)版本和瀏覽器版本以及IP地址

發(fā)布時(shí)間:2021-09-16 14:20:14 來源:億速云 閱讀:157 作者:柒染 欄目:開發(fā)技術(shù)

如何在.NET中獲取客戶端的操作系統(tǒng)版本和瀏覽器版本以及IP地址,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

我們?cè)谑褂?NET做網(wǎng)站的時(shí)候,很多情況下需要需要知道客戶端的操作系統(tǒng)版本和瀏覽器版本,怎樣獲取客戶端的操作系統(tǒng)和瀏覽器版本呢?我們可以通過分析UserAgent來獲取。

.NET 獲取客戶端的操作系統(tǒng)

請(qǐng)看下面的代碼,我們首先創(chuàng)建一個(gè)通過分析UserAgent來獲取操作系統(tǒng)的方法

/// <summary>
/// 獲取操作系統(tǒng)的名字
/// </summary>
/// <param name="userAgent"></param>
/// <returns></returns>
public static string GetOSNameByUserAgent(string userAgent)
{
 string osVersion = "未知";

 if (userAgent.Contains("NT 10.0"))
 {
 osVersion = "Windows 10";
 }
 else if (userAgent.Contains("NT 6.3"))
 {
 osVersion = "Windows 8.1";
 }
 else if (userAgent.Contains("NT 6.2"))
 {
 osVersion = "Windows 8";
 }
 else if (userAgent.Contains("NT 6.1"))
 {
 osVersion = "Windows 7";
 }
 else if (userAgent.Contains("NT 6.1"))
 {
 osVersion = "Windows 7";
 }
 else if (userAgent.Contains("NT 6.0"))
 {
 osVersion = "Windows Vista/Server 2008";
 }
 else if (userAgent.Contains("NT 5.2"))
 {
 if (userAgent.Contains("64"))
 osVersion = "Windows XP";
 else
 osVersion = "Windows Server 2003";
 }
 else if (userAgent.Contains("NT 5.1"))
 {
 osVersion = "Windows XP";
 }
 else if (userAgent.Contains("NT 5"))
 {
 osVersion = "Windows 2000";
 }
 else if (userAgent.Contains("NT 4"))
 {
 osVersion = "Windows NT4";
 }
 else if (userAgent.Contains("Me"))
 {
 osVersion = "Windows Me";
 }
 else if (userAgent.Contains("98"))
 {
 osVersion = "Windows 98";
 }
 else if (userAgent.Contains("95"))
 {
 osVersion = "Windows 95";
 }
 else if (userAgent.Contains("Mac"))
 {
 osVersion = "Mac";
 }
 else if (userAgent.Contains("Unix"))
 {
 osVersion = "UNIX";
 }
 else if (userAgent.Contains("Linux"))
 {
 osVersion = "Linux";
 }
 else if (userAgent.Contains("SunOS"))
 {
 osVersion = "SunOS";
 }
 else
 {
 osVersion = System.Web.HttpContext.Current.Request.Browser.Platform;
 }
 return osVersion;
}

上面的方法就是通過解析UserAgent中包含的操作系統(tǒng)字符串信息,返回具體的操作系統(tǒng)和版本,其中Request.Browser.Platform是獲得操作系統(tǒng)的內(nèi)核,如果上面的都不匹配就直接返回操作系統(tǒng)的內(nèi)核版本,上面的方法可以檢測(cè)到最新的Windows 10,同時(shí)可以檢測(cè)蘋果、Linux、SunOS等主流操作系統(tǒng)。

調(diào)用方法我們可以像下面的代碼這樣寫:

復(fù)制代碼 代碼如下:

string systemName = GetOSNameByUserAgent(System.Web.HttpContext.Current.Request.UserAgent);


通過傳入Request的UserAgent就可以返回操作系統(tǒng)的了。

.NET 獲取客戶端的瀏覽器版本

.NET獲取瀏覽器版本很簡(jiǎn)單,只需要通過request的Browser固有屬性即可,如下面的代碼

復(fù)制代碼 代碼如下:

string browserName = System.Web.HttpContext.Current.Request.Browser.Browser + " " + System.Web.HttpContext.Current.Request.Browser.Version;

.Net獲取IP地址:

/// <summary>
/// 獲取當(dāng)前客戶端Ip地址
/// </summary>
/// <returns></returns>
public static string GetCurrentUserHostAddress()
{
 string userHostAddress = "";
 userHostAddress = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
 if (string.IsNullOrEmpty(userHostAddress))
 {
 //沒有代理IP則直接取連接客戶端IP 
 userHostAddress = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
 }
 return userHostAddress;
}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI