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

先看效果

使用

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 patterns
var 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;
}

C#获取用户客户端系统版本设备名称浏览器的更多相关文章

  1. 通过jquery 获取用户当前所在的城市名称和IP地址

    下面这段JS代码是通过jquery 结合新浪IP地址库和QQip地址库接口获取用户当前所在的城市(省份)名称. 用户当前IP地址等数据.其中当前IP是通过 QQip地址库接口获取,其他数据都是通过 新 ...

  2. 微信小程序—获取用户网络状态和设备的信息

    这个是一个简易教程,按照他的步骤下载好了,打开界面看到的效果是如下的:

  3. 如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介

    如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介 一.总结 一句话总结:Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法 ...

  4. iOS获取用户设备崩溃日志并分析

    项目最近发布,部分用户在内侧使用,正好遇到一些问题,由于用户在其他城市,所以对于用户设备产生的崩溃日志,不好直接拿设备连接电脑. 对于这种情况,我们可以这样: 1.引导用户开启iOS设备设置-> ...

  5. iOS 获取设备信息,mac地址,IP地址,设备名称

    #import "DeviceInfoUtil.h" #import "GlobleData.h" #import "sys/utsname.h&qu ...

  6. 获取iPhone手机的UDID和设备名称.

    关于设备名称: iPhone的设备名称也可以在手机上面查看到:设置-通用-关于本机-名称(设备名称是可以自己改的) 关于UUID: 什么?用了iPhone这么久你不知道什么叫UDID! UDID 是由 ...

  7. Windows Phone 8 获取设备名称

    通过使用Microsoft.Phone.Info.DeviceStatus类,我们可以获取设备的一些信息,如设备厂商,设备名称等.通过Microsoft.Phone.Info.DeviceStatus ...

  8. Python学习---Django的request扩展[获取用户设备信息]

    关于Django的request扩展[获取用户设备信息] settings.py INSTALLED_APPS = [ ... 'app01', # 注册app ] STATICFILES_DIRS ...

  9. 获取软件的apk包名、查看手机设备名称等

    获取软件的apk包名 1.下载aapt,这里使用的是SDK自带的aapt,找到SDK路径下面的aapt.exe,本机路径:E:\downloads\android-sdk_r23.0.2-window ...

  10. 微信小程序 获取用户信息 encryptData解密 C#版本

    最近学习小程序开发,需要对encryptData解密,获取用户信息,官方源码没有C#版本,网上的资料比较杂,有的使用还有问题,下面贴一下自己亲试可以使用的一个源码 1.code 换取 session_ ...

随机推荐

  1. 痞子衡嵌入式:如果i.MXRT离线无法启动,试着分析ROM启动日志

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MXRT系列MCU的ROM启动日志. 关于 i.MX RT 启动问题解决的文章,痞子衡写过非常多,其中大部分都是具体到某一类启 ...

  2. Wpf使用NLog将日志输出到LogViewer

    1 LogViewer LogViewer是通过UDP传输的高性能实时log查看器. 具有一下特性: 通过UDP读取日志 通过文件导入日志 导出日志到一个文件中 排序.过滤(日志树,日志等级)和查找 ...

  3. 填坑 CentOS7 使用 Python3 安装 Cython 编写扩展

    前文参见 <CentOS 7 下通过 Cython 编写 python 扩展>, 用的是 Python2.7,本文用的是 Python3.6 yum install python3 pyt ...

  4. 批量读取nii文件的shape

    import SimpleITK as sitk from glob import glob import os path = glob(r"D:\MyData\date\*") ...

  5. iOS生成ipa包的时候总是弹窗提示macOS想要使用系统钥匙串

    最近新换了一台苹果电脑,性能不错,不过证书和描述文件需要重新配置,遇到了一系列奇怪的问题.在这里整理记录下来,希望能给其他人提供一些帮助.iOS生成ipa包的时候总是弹窗提示[macOS想要使用系统钥 ...

  6. HDU-ACM 2024 Day3

    T1004 游戏(HDU 7460) 注意到对于两个人,他们 \(t\) 轮后能力值相同的概率只与他们初始时的能力差有关,所以我们先 \(\text{FFT}\) 求出 \(|a_i - a_j| = ...

  7. Vite打包碎片化,如何化解?

    背景 我们在使用 Vite 进行打包时,经常会遇到这个问题:随着业务的展开,版本迭代,页面越来越多,第三方依赖也越来越多,打出来的包也越来越大.如果把页面都进行动态导入,那么凡是几个页面共用的文件都会 ...

  8. 立即报名 | 云原生 + AI Meetup 成都站 11.4 正式开启

    2023 年,KubeSphere 社区已经在深圳.杭州.上海三个城市各组织了一场线下 Meetup.第四站,我们将走进天府成都. 11 月 4 日,云原生 + AI Meetup 成都站将正式开启! ...

  9. OpenFunction 成为 CNCF 沙箱项目,使 Serverless 函数与应用运行更简单

    2022 年 4 月 27 日,青云科技容器团队开源的函数即服务(FaaS: Function-as-a-Service)项目 OpenFunction 顺利通过了云原生计算基金会 CNCF 技术监督 ...

  10. Shell简单入门程序参考

    目录 0 前言 0.1 shell初试 1 程序功能 1.1 显示当前主机名和IP地址. 1.1.1 if 语句 详解 1.2 创建目录或者文件 1.3 修改文件属性 1.3.1 chmod 修改文件 ...