C#获取用户客户端系统版本设备名称浏览器

先看效果4d51a1ee7424116efdab8bd9dd8692d3.png

使用

Neget引用包UAParser

项目的github :https://github.com/ua-parser/uap-csharp

using UAParser;...string uaString = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3";// get a parser with the embedded regex patternsvar uaParser = Parser.GetDefault();// get a parser using externally supplied yaml definitions// var uaParser = Parser.FromYaml(yamlString);ClientInfo c = uaParser.Parse(uaString);Console.WriteLine(c.UA.Family); // => "Mobile Safari"Console.WriteLine(c.UA.Major);  // => "5"Console.WriteLine(c.UA.Minor);  // => "1"Console.WriteLine(c.OS.Family);        // => "iOS"Console.WriteLine(c.OS.Major);         // => "5"Console.WriteLine(c.OS.Minor);         // => "1"Console.WriteLine(c.Device.Family);    // => "iPhone"

其他方法

C# 服务端获取客户端 系统/浏览器/IP

参考:https://www.cnblogs.com/Aaxuan/p/10301926.html

/// 获取客户端操作系统版本/// </summary>/// <returns></returns>public static string GetOSName(){if (HttpContext.Current == null || HttpContext.Current.Request == null || HttpContext.Current.Request.UserAgent == null){ return "未知"; }var userAgent = HttpContext.Current.Request.UserAgent.ToLower();if (userAgent.Contains("android")){ return "Android"; }else if (userAgent.Contains("mac os x")){ return "ios"; }else if (userAgent.Contains("windows phone")){ return "Windows Phone"; }else if (userAgent.Contains("nt 10.0")){ return "Windows 10"; }else if (userAgent.Contains("NT 6.3")){ return "Windows8.1"; }else if (userAgent.Contains("NT 6.2")){ return "Windows8"; }else if (userAgent.Contains("nt 6.1")){ return "Windows 7"; }else if (userAgent.Contains("nt 6.0")){ return "Windows Vista/Server 2008"; }else if (userAgent.Contains("nt 5.2")){ return "Windows Server 2003"; }else if (userAgent.Contains("nt 5.1")){ return "Windows XP"; }else if (userAgent.Contains("nt 5")){ return "Windows 2000"; }else if (userAgent.Contains("nt 4")){ return "Windows NT4"; }else if (userAgent.Contains("me")){ return "Windows Me"; }else if (userAgent.Contains("98")){ return "Windows 98"; }else if (userAgent.Contains("95")){ return "Windows 95"; }else if (userAgent.Contains("mac")){ return "Mac"; }else if (userAgent.Contains("unix")){ return "UNIX"; }else if (userAgent.Contains("linux")){ return "Linux"; }else if (userAgent.Contains("sunos")){ return "SunOS"; }return "未知";}/// <summary>/// 获取浏览器名称/// </summary>/// <returns></returns>public static string GetBrowser(){if (HttpContext.Current == null || HttpContext.Current.Request == null || HttpContext.Current.Request.UserAgent == null){ return "未知"; }var userAgent = HttpContext.Current.Request.UserAgent.ToLower();if (userAgent.Contains("opera/ucweb")){ return "UC Opera"; }else if (userAgent.Contains("openwave/ ucweb")){ return "UCOpenwave"; }else if (userAgent.Contains("ucweb")){ return "UC"; }else if (userAgent.Contains("360se")){ return "360"; }else if (userAgent.Contains("metasr")){ return "搜狗"; }else if (userAgent.Contains("maxthon")){ return "遨游"; }else if (userAgent.Contains("the world")){ return "世界之窗"; }else if (userAgent.Contains("tencenttraveler") || userAgent.Contains("qqbrowser")){ return "腾讯"; }else if (userAgent.Contains("chrome")){ return "Chrome"; }else if (userAgent.Contains("safari")){ return "safari"; }else if (userAgent.Contains("firefox")){ return "Firefox"; }else if (userAgent.Contains("opera")){ return "Opera"; }else if (userAgent.Contains("msie")){ return "IE"; }else{ return System.Web.HttpContext.Current.Request.Browser.Browser; }}/// <summary>/// 取得客户端IP/// </summary>/// <returns></returns>public static string GetClientIp(){var result = "0.0.0.0";if (HttpContext.Current == null && HttpContext.Current.Request == null){ return result; }result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];if (result == null || result == String.Empty){result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];}if (result == null || result == String.Empty){result = HttpContext.Current.Request.UserHostAddress;}if (result == null || result == String.Empty){result = "0.0.0.0";}return result;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABP vNext微服务架构详细教程——简介

简介该系列文章主要展示ABP vNext框架在微服务架构下的用法&#xff0c;提供一套可落地的技术实现思路&#xff0c;并演示各服务在Kubernetes下的部署方案。基础概念ABP vNext基于ASP.NET Core的应用框架&#xff0c;是.Net主流应用开发框架之一。提供基于模块化的灵活项目模板…

电脑怎么测试硬盘的读写速度_两块硬盘合二为一,电脑读写翻倍?这样的“好事”你必须得了解...

近日&#xff0c;技嘉在旗下顶级的B550 AORUS MASTER主板上做了一次PCIe4.0固态阵列测试&#xff0c;由于该款主板支持3个PCIe4.0的M.2固态硬盘&#xff0c;所以这次的测试为3块PCIe4.0固态组建RAID0&#xff0c;来进行读写测试。常见的PCIe3.0x4的固态硬盘的读写速度一般在250…

C# 动态创建控件时注册Name属性

动态创建控件1. 容器控件 .RegisterName("Name",要注册的控件) //注册控件2. 容器控件 .FindName("Name") as 控件类型 //找到控件并转换成相应类型注意仅通过控件.Name来设置是不能通过FindName来找到控件的&#xff0c;必须注册动态删除控件1. 容器控件…

java配置运行环境和配置

2019独角兽企业重金招聘Python工程师标准>>> 1&#xff1a;准备好下载的java。开始安装 2&#xff1a;第一次蹦出安装路径设置为&#xff08;D:\java\jdk&#xff09;。不要设置下图样式设置路径! 3:jdk安装完成后会再弹出如下窗口&#xff0c;让你选择独立的jre的安…

SQL Server 的锁定和阻塞

本帖提供两种做法&#xff0c;可避免在 SQL Server 事务锁定时产生的不正常或长时间阻塞&#xff0c;让用户和程序也无限期等待&#xff0c;甚至引起 connection pooling 连接数超过容量。 所谓的「阻塞」&#xff0c;是指当一个数据库会话中的事务&#xff0c;正在锁定其他会话…

结构体数组排列_学习RTOS(3)数据结构

在 FreeRTOS 中存在着大量的基础数据结构列表和列表项的操作&#xff0c;列表和列表项是直接从 FreeRTOS 源码注释中的 list 和 list item 翻译过来的&#xff0c;其实就是对应我们 C 语言当中的链表和节点&#xff0c;在后续的讲解&#xff0c;我们说的链表就是列表&#xff0…

python实现元旦多种炫酷高级倒计时_附源码【第20篇—python过元旦】

文章目录 &#x1f30d;python实现元旦倒计时 — 初级(控制台)⛅实现效果&#x1f30b;实现源码&#x1f31c;源码讲解 &#x1f30d;python实现元旦倒计时 — 中级(精美动态图)⛅实现效果&#x1f30b;实现源码&#x1f31c;源码讲解 &#x1f30d;python实现元旦倒计时 — 高…

.NET6之MiniAPI(十一):本地化

.net开发体系里&#xff0c;大部分本地化的实现都是用资源文件实现(.resx)&#xff0c;asp.net core中的多语Culture是指区域性的对象&#xff0c;而UICulture 该对象表示资源管理器在运行时查找区域性特定资源时所用的当前用户接口区域性。asp.net core实现也是通过添注入本地…

C#基础整理

元旦整理书架发现一本小册子——《C#精髓》中国出版社2001年出版的&#xff0c;粗略翻了下关于C#的知识点挺全的虽然内容谈得很浅也有很多过时的内容&#xff08;话说这本书是我在旧书店花5块钱淘的&#xff09;我保留原有章节并删减部分过时和不重要内容添加一些自己觉得重要的…

linux c之fdopen(int fd, const char *type)使用总结

1、fdopen(int fd, const char *type)的介绍 比如一写特殊文件不能用io打开,我们先要用open函数得到文件描述符,也就是这个fdopen函数的第一个参数,第二个参数是常量,不同类型不同意义,如下图 2、代码演示 #include<stdio.h> #include<fcntl.h>int main…

基于ASA防火墙的SSL ×××配置

基于ASA防火墙的SSL 配置实验拓扑图 实验目的&#xff0c;PC2通过SSL能够访问到PC1SSL服务端配置全在ASA上面&#xff0c;下面为配置步骤&#xff1a;第一步&#xff1a;建立RSA密钥证书&#xff0c;名称为ssl***keypaircrypto key generate rsa label ssl***keypair第二步&…

晚上去宾馆有什么是一定要带的?

1 前任垃圾袋&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 上一代摸鱼也是很厉害的&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 穿最帅最贵的衣服参加婚礼&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 去宾馆要带什么?&#xff08…

jQuery banner切换插件

今天学写了一个基于jQuery焦点图切换插件&#xff0c;有不对的地方还请多多指教&#xff0c;不多说下面是代码&#xff1a; 1、引jQuery库 <script src"http://code.jquery.com/jquery-1.11.1.min.js"></script> 2、Html部分 <!--Focus Html--> &l…

Linux:文件描述符

1. 概述在Linux系统中一切皆可以看成是文件&#xff0c;文件又可分为&#xff1a;普通文件、目录文件、链接文件和设备文件。文件描述符&#xff08;file descriptor&#xff09;是内核为了高效管理已被打开的文件所创建的索引&#xff0c;其是一个非负整数&#xff08;通常是小…

想象中的论文答辩和真实的论文答辩,哈哈哈哈哈哈……

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;冷兔&#xff08;lengtoo&#xff09;整理自网络&#xff0c;图源见水印毕业季即将来临&#xff0c;放眼朋友圈&#xff0c;大家都在为毕业论文答辩忙碌。论文答辩可以说是校园生活的最后一站&#xff0c;是毕业论文…

ABP vNext微服务架构详细教程——架构介绍

总体架构所有应用服务、API网关、身份认证服务均部署在Kubernetes容器中&#xff0c;由Kubernetes提供应用配置、服务治理、服务监控等功能。客户端所有访问均通过Kubernetes的Nginx-Ingress接入服务集群&#xff0c;并由API网关负责路由匹配和身份认证后转发至相应的应用服务处…

wireshark远程抓包

2019独角兽企业重金招聘Python工程师标准>>> 配置ssh证书 在本地机器创建公钥ssh-keygen -t rsa -C your_emaildomain.com将公钥复制到ssh服务器 scp ~/.ssh/id_rsa.pub usernamehostname:~/ #将公钥文件复制至ssh服务器 ssh usernamehostname #使用用户名和密码方…