.NET獲取客戶端的操作系統(tǒng)版本、瀏覽器版本和IP地址
我們在使用.NET做網(wǎng)站的時候,很多情況下需要需要知道客戶端的操作系統(tǒng)版本和瀏覽器版本,怎樣獲取客戶端的操作系統(tǒng)和瀏覽器版本呢?我們可以通過分析UserAgent來獲取。
.NET 獲取客戶端的操作系統(tǒng)
請看下面的代碼,我們首先創(chuàng)建一個通過分析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)核版本,上面的方法可以檢測到最新的Windows 10,同時可以檢測蘋果、Linux、SunOS等主流操作系統(tǒng)。
調(diào)用方法我們可以像下面的代碼這樣寫:
通過傳入Request的UserAgent就可以返回操作系統(tǒng)的了。
.NET 獲取客戶端的瀏覽器版本
.NET獲取瀏覽器版本很簡單,只需要通過request的Browser固有屬性即可,如下面的代碼
.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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET簡單獲取服務(wù)端和客戶端計算機(jī)名稱的方法
- 獲取asp.net服務(wù)器控件的客戶端ID和Name的實現(xiàn)方法
- asp.net實現(xiàn)獲取客戶端詳細(xì)信息
- ASP.net中獲取客戶端參數(shù)操作系統(tǒng)信息
- ASP.Net獲取客戶端網(wǎng)卡MAC的小例子
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- 獲取客戶端IP地址c#/vb.net各自實現(xiàn)代碼
- ASP.NET獲取真正的客戶端IP地址的6種方法
- jquery獲取ASP.NET服務(wù)器端控件dropdownlist和radiobuttonlist生成客戶端HTML標(biāo)簽后的value和text值
相關(guān)文章
ASP.net Substitution 頁面緩存而部分不緩存的實現(xiàn)方法
在ASP.NET中要實現(xiàn)部分內(nèi)容非緩存,而其它的都需要緩存輸出,可以使用Substitution控件實現(xiàn).2009-03-03
基于.Net?Core認(rèn)證授權(quán)方案之JwtBearer認(rèn)證
這篇文章介紹了基于.Net?Core認(rèn)證授權(quán)方案之JwtBearer認(rèn)證,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06
asp.net實現(xiàn)數(shù)據(jù)從DataTable導(dǎo)入到Excel文件并創(chuàng)建表的方法
這篇文章主要介紹了asp.net實現(xiàn)數(shù)據(jù)從DataTable導(dǎo)入到Excel文件并創(chuàng)建表的方法,涉及asp.net基于DataTable的數(shù)據(jù)庫及excel操作相關(guān)技巧,需要的朋友可以參考下2015-12-12
詳解Asp.Net MVC——控制器與動作(Controller And Action)
這篇文章主要介紹了詳解Asp.Net MVC——控制器與動作(Controller And Action) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
asp.net Gridview數(shù)據(jù)列中實現(xiàn)鼠標(biāo)懸浮變色
Gridview一般朋友們都比較常用,因為它可以方便快捷的實現(xiàn)我們所需的很多功能,代碼也比較簡潔。平時的項目中這個控件我也比較常用,其中有個功能用到的頻率也比較多。所以記錄下備忘。2010-06-06

