0712-2888027 189-8648-0214
微信公众号

孝感风信网络科技有限公司微信公众号

当前位置:主页 > 技术支持 > PHP > 使用laravel agent轻松识别客户端信息以及设备信息

使用laravel agent轻松识别客户端信息以及设备信息

时间:2024-04-24来源:风信官网 点击: 2584次
有很多时候我们需要在laravel中识别系统是安卓还是ios,有时候我们也需要判断是什么浏览器,以及判断手机或者电脑访问网站,安全中我们需要判断laravel网站是否是机器人访问。
安装
 
使用composer安装:
 
composer require jenssegers/agent
 
Laravel在config中配置
 
在config/app.php中添加服务提供者:
 
Jenssegers\Agent\AgentServiceProvider::class,
 
同样在config/app.php中注册门面到aliases数组:
 
'Agent' => Jenssegers\Agent\Facades\Agent::class,
 
基本使用
 
首先创建一个Agent实例(如果您使用的是Laravel,则使用Facade门面Agent):
 
use Jenssegers\Agent\Agent;
$agent = new Agent();
 
# 或者使用如下方法
use Agent;
 
如果您想要在CLI脚本中解析除当前请求以外的用户代理,则可以使用setUserAgent和setHttpHeaders方法:
 
$agent->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2');
$agent->setHttpHeaders($headers);
 
所有Mobile Detect原有的方法仍然可以使用,请查看https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples上的一些原始示例
 
判断当前客户端
 
1、判断操作系统
 
Agent::is('Windows');
Agent::is('Firefox');
Agent::is('iPhone');
Agent::is('OS X');
 
2、与上面的is一样
 
与is()一样,判断操作系统:
 
Agent::isAndroidOS();
Agent::isNexus();
Agent::isSafari();
 
3、移动检测
 
检测移动设备:
 
Agent::isMobile();
Agent::isTablet();
 
4、匹配user agent
 
用正则表达式搜索用户代理:
 
Agent::match('regexp');
 
附加功能
 
1、获取语言
 
获取浏览器语言。例:
 
$languages = Agent::languages();
// ['nl-nl', 'nl', 'en-us', 'en']
 
2、设备名称
 
获取设备名称,比如手机。(iPhone, Nexus, AsusTablet, ...)
 
$device = Agent::device();
 
3、操作系统名称
 
获取操作系统。(Ubuntu,Windows,OS X,...)
 
$platform = Agent::platform();
 
4、浏览器名称
 
获取浏览器名称。(Chrome,IE,Safari,Firefox,...)
 
$browser = Agent::browser();
 
5、桌面检测
 
检查用户是否使用桌面设备。
 
$agent = Agent::isDesktop();
 
这将检查用户是否不是移动设备,平板电脑或机器人。
 
6、电话检测
 
检查用户是否为电话设备。
 
Agent::isPhone();
 
7、机器人检测
 
检查用户是否是机器人。这使用jaybizzle / crawler-detect来执行机器人检测。
 
Agent::isRobot();
 
8、机器人名称
 
获取机器人名称。
 
Agent::robot();
 
9、获取浏览器/系统版本
 
MobileDetect最近添加了一个version可以获取浏览器/系统版本。要获取浏览器或平台版本,您可以使用:
 
$browser = $agent->browser();
$version = $agent->version($browser);
 
$platform = $agent->platform();
$version = $agent->version($platform);
 
请注意,版本方法仍处于测试阶段,所以它可能不会返回正确的结果。
栏目列表
推荐内容
热点内容
展开