.NET获取客户端的操作系统版本、浏览器版本和IP地址_实用技巧

我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取。

.NET 获取客户端的操作系统

请看下面的代码,我们首先创建一个通过分析UserAgent来获取操作系统的方法

/// <summary>
/// 获取操作系统的名字
/// </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中包含的操作系统字符串信息,返回具体的操作系统和版本,其中Request.Browser.Platform是获得操作系统的内核,如果上面的都不匹配就直接返回操作系统的内核版本,上面的方法可以检测到最新的Windows 10,同时可以检测苹果、Linux、SunOS等主流操作系统。

调用方法我们可以像下面的代码这样写:

复制代码 代码如下:

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

通过传入Request的UserAgent就可以返回操作系统的了。

.NET 获取客户端的浏览器版本

.NET获取浏览器版本很简单,只需要通过request的Browser固有属性即可,如下面的代码

复制代码 代码如下:

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

.Net获取IP地址:

/// <summary>
/// 获取当前客户端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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索js获取客户端ip地址、java获取客户端ip地址、获取客户端ip地址、php 获取客户端ip地址、c 获取客户端ip地址,以便于您获取更多的相关知识。

时间: 2024-10-30 23:50:01

.NET获取客户端的操作系统版本、浏览器版本和IP地址_实用技巧的相关文章

透过ashx看浏览器服务器运行本质(图解)_实用技巧

浏览器与IIS服务器与.Net FrameWork关系 Asp.Net ASP.Net是一种动态网页技术,在服务器端运行.Net代码,动态生成HTML,然后响应给浏览器. 可以使用JavaScript.Dom在浏览器端完成很多工作,但是有很多工作无法在浏览器端完成,比如存储数据.访问数据库.复杂的业务逻辑运算.安全性要求高的逻辑运算等. ASP.Net:一般处理程序(ashx),WebForm(aspx).MVC3(Model, View , Controler). Asp.Net里的常用文件

Silverlight中动态获取Web Service地址_实用技巧

在使用WCF或者WS进行数据库操作的时候都需要有一个明确的服务地址,如果是WCF就是svc文件地址.初学者通常会直接使用VS的Add Service Reference来添加引用.这的确是十分方便的手段,但是这样会带来什么样的麻烦呢? 第一,在开发的阶段一旦改变了WS文件的目录结构就必须改变SL工程中的WS地址,而且这种改变并不是单纯的Update Service Reference这么简单,因为地址已经改变了,你必须删掉旧的Reference来添加新的Reference,这是其一. 第二, 当

.net框架(framework)版本不匹配的解决方法_实用技巧

在已安装了.net framework的计算机上部署用.net开发的程序时,若.net framework的版本不匹配,则提示:" .Net Framework Initialization Error – Unable to find a version of the runtime to run this application". 这时候有个简单的办法是,修改(如果没有则创建)程序xxx.exe所在目录的和xxx.exe同名的config文件--xxx.exe.config,使其

asp.net下获取浏览器类型的实现代码_实用技巧

相关代码: 复制代码 代码如下: if (Page.Request.Browser.EcmaScriptVersion.Major > 0 && Page.Request.Browser.W3CDomVersion.Major > 0)//判断是否支持脚本 { Response.Write("浏览器名称与版本号:" + Page.Request.Browser.Type + "<br />"); Response.Write(

ASP.NET网站管理系统退出 清除浏览器缓存,Session的代码_实用技巧

1.在系统登陆成功时记录登陆的用户名.密码等信息(登陆功能的部分代码) 复制代码 代码如下: Session["id"] = user.id.ToString(); Session["name"] = user.name.ToString(); Session["pwd"] = user.password.ToString(); Session["time"] = user.LoginTime.ToString(); Sess

ASP.NET MVC中使用jQuery时的浏览器缓存问题详解_实用技巧

介绍 尽管jQuery在浏览器ajax调用的时候对缓存提供了很好的支持,还是有必要了解一下如何高效地使用http协议. 首先要做的事情是在服务器端支持HTTP GET,定义不同的URL输出不同的数据(MVC里对应的就是action).如果要使用同一个地址获取不同的数据,那就不对了,一个HTTP POST也不行因为POST不能被缓存.许多开发人员使用POST主要有2个原因:明确了数据不能被缓存,或者是避免JSON攻击(JSON返回数组的时候可以被入侵). 缓存解释 jQuery全局对象里的ajax

gridview checkbox从服务器端和客户端两个方面实现全选和反选_实用技巧

GridView中的checkbox的全选和反选在很多的地方都是要求实现的,所以下面就从服务器端和客户端两个方面实现了checkbox的选择. 1.服务器端: html代码如下: 复制代码 代码如下: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="Sq

asp.net 获取指定文件夹下所有子目录及文件(树形)_实用技巧

#region 获取指定文件夹下所有子目录及文件(树形)         /****************************************          * 函数名称:GetFoldAll(string Path)          * 功能说明:获取指定文件夹下所有子目录及文件(树形)          * 参    数:Path:详细路径          * 调用示列:          *           string strDirlist = Server.M

asp.net中C#获取字符串中汉字的个数的具体实现方法_实用技巧

符串可以包括数字,字母,汉字或者其他的字符.使用Char类型的IsDigit静态方法可以判断字符串中的字符是否为数字,使用Char类型中的IsLetter静态方法可以判断字符串中是否为字母.我们来实现一种方法来实现判断字符串中是否为汉字,通过此方法可以计算字符串中汉字的个数,运行效果如图: 首先根据效果图设置好Form的界面和内容,Box1.Text为输入的字符串,我们对该字符串的处理,来计算汉字的个数,双击Buton控件,编辑其单击事件代码. 我们看下汉字的Unicode范围,普遍给出了0x4