[ laravel拓展 ] 使用laravel agent轻松识别客户端信息以及设备信息
Song •
4822 次浏览 •
0个评论 •
2018年02月11日
Agent
有很多时候我们需要在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);
请注意,版本方法仍处于测试阶段,所以它可能不会返回正确的结果。
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
laravel11如何启用routes/api.php无状态路由 2025-03-06
热门文章
-
laravel11如何启用routes/api.php无状态路由 2025-03-06
-
oppo手机默认浏览器urlscheme 2025-02-13
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
更多相关好文