分享

.Net WebApi竟然可以获取到这么多客户信息

 Csharp小记 2024-09-05 发布于江苏
    在获取客户端的一些信息时,使用C/S模式(即Winform或者WPF)会更全面,但是在B/S模式大行其道的当下,我们依然可以通过一些浏览器的标识分析出很多信息。接下来我们可以借助一些第三方库来看看具体可以获取到哪些。
        
 
 
 



开发环境:.NET 6

开发工具:Visual Studio 2022

 

实现步骤

  1. 首先要使用的是UAParser库,此项目是一个开源库,有一个完全由C#代码实现的版本,项目地址为:https://github.com/ua-parser/uap-csharp
  2. 此项目主要是用来解析用户代理客户端信息,也就是User Agent,简称UA。主要可解析出以下信息
  • 操作系统以及对应的版本和补丁
  • 设备的品牌、型号等
  • 所访问浏览器的名称、版本等信息
  1. 下面写一个简单的Demo来做下测试,可以创建一个.Net6 WebApi项目,然后通过Swagger来简单看下,代码很简单
usingUAParser;
[HttpGet]publicClientInfoGetUserAgentInfo(){stringua = Request.Headers["User-Agent"];ClientInfo clientInfo = Parser.GetDefault().Parse(ua);returnclientInfo;}
  1. 结果如下图
  1. 然后我们还可以解析IP,通过IP同时也可以获得所在城市,这个需要依赖另一个库:IPTools,此项目也是由C#代码编写,项目地址为:https:///lsp5201314/IPTools
  2. 需要安装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;}
  1. 由于此处我直接使用的localhost访问,所以是内网环境,不能直接显示出所在城市等信息,放到服务器后访问是没问题的,返回如下

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多