在获取客户端的一些信息时,使用C/S模式(即Winform或者WPF)会更全面,但是在B/S模式大行其道的当下,我们依然可以通过一些浏览器的标识分析出很多信息。接下来我们可以借助一些第三方库来看看具体可以获取到哪些。 开发环境:.NET 6 开发工具:Visual Studio 2022 - 首先要使用的是
UAParser 库,此项目是一个开源库,有一个完全由C#代码实现的版本,项目地址为:https://github.com/ua-parser/uap-csharp - 此项目主要是用来解析用户代理客户端信息,也就是User Agent,简称UA。主要可解析出以下信息
- 下面写一个简单的Demo来做下测试,可以创建一个.Net6 WebApi项目,然后通过Swagger来简单看下,代码很简单
usingUAParser;
[HttpGet] publicClientInfoGetUserAgentInfo() { stringua = Request.Headers["User-Agent"]; ClientInfo clientInfo = Parser.GetDefault().Parse(ua); returnclientInfo; }
- 然后我们还可以解析IP,通过IP同时也可以获得所在城市,这个需要依赖另一个库:
IPTools ,此项目也是由C#代码编写,项目地址为:https:///lsp5201314/IPTools - 需要安装IPTools库以及Ip数据库文件,代码如下
[HttpGet]publicIpInfoGetIPInfo(){stringip = Request.HttpContext.Connection.RemoteIpAddress.ToString();if(ip.Contains("::1"))ip ="127.0.0.1";IpInfo ipInfo = IpTool.Search(ip);returnipInfo;}
- 由于此处我直接使用的localhost访问,所以是内网环境,不能直接显示出所在城市等信息,放到服务器后访问是没问题的,返回如下
|