elegisandi / iab-bot-detect
验证用户代理与IAB蜘蛛和机器人列表
v2.1.1
2018-11-27 03:31 UTC
Requires
- php: >=5.6
- aws/aws-sdk-php: ^3.0
README
使用IAB列表进行蜘蛛/机器人检测
安装
composer require elegisandi/iab-bot-detect
Laravel/Lumen集成
-
将IAB的服务提供者添加到你的
config/app.php
提供者中elegisandi\IABBotDetect\IabServiceProvider::class
-
将IAB的外观添加到你的
config/app.php
别名中'IAB' => elegisandi\IABBotDetect\IabFacade::class
-
在
.env
文件中设置IAB凭据IAB_USER=your-iab-user IAB_PASSWORD=your-iab-password
如果你想要修改包的配置,只需运行
php artisan vendor:publish --provider=elegisandi\\IABBotDetect\\IabServiceProvider
Lumen
-
将IAB的服务提供者注册到你的
bootstrap/app.php
$app->register(elegisandi\IABBotDetect\IabServiceProvider::class);
配置
-
生成白名单和黑名单缓存
php artisan iab:refresh-list
你可以添加选项
--overwrite
来重置缓存。
基本用法
<?php
use elegisandi\IABBotDetect\Validator;
$user_agent = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
$config = [
'user' => 'YOUR_IAB_USER',
'password' => 'YOUR_IAB_PASSWORD'
];
try {
$bot_detect = new Validator($user_agent, $config);
if($bot_detect->isValidBrowser()) {
echo 'valid browser';
} else {
echo 'invalid browser';
}
} catch (\Exception $e) {
// fallback user agent validation
}
S3自动备份
为了启用此功能,你必须将以下内容添加到构造函数的第二个参数中
's3_backup' => true,
's3_bucket' => 'YOUR_IAB_S3_BUCKET,
's3_region' => 'YOUR_AWS_REGION',
'aws_credentials' => [
'key' => 'YOUR_AWS_ACCESS_KEY_ID',
'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
]
Laravel/Lumen使用
<?php
use IAB;
$user_agent = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
try {
if(IAB::isValidBrowser($user_agent)) {
echo 'valid browser';
} else {
echo 'invalid browser';
}
} catch (\Exception $e) {
// fallback user agent validation
}
Lumen
try {
if(app('iab')->isValidBrowser($user_agent)) {
echo 'valid browser';
} else {
echo 'invalid browser';
}
} catch (\Exception $e) {
// fallback user agent validation
}
S3自动备份
为了启用此功能,你必须设置以下.env变量
IAB_S3_BACKUP=true
IAB_S3_BUCKET=your-s3-bucket-name
AWS_REGION=your-s3-region
AWS_ACCESS_KEY_ID=your-aws-access-key
AWS_SECRET_ACCESS_KEY=your-aws-secret-key
方法
-
setUserAgent($user_agent)
其中
$user_agent
= 用户代理字符串 -
setCredentials($credentials)
其中
$credentials
= 你的IAB用户和密码的键值数组 -
isValidBrowser($user_agent)
其中
$user_agent
可以是null抛出一个 错误异常
返回
布尔值
-
isBot($user_agent)
其中
$user_agent
可以是null抛出一个 错误异常
返回
布尔值
-
initialize($overwrite)
其中
$overwrite
= 一个标志布尔值,用于覆盖缓存文件(默认值:false
)抛出一个 错误异常
准备用于机器人检测过程的所需缓存文件。
错误异常
贡献
首先打开一个问题来讨论潜在的变化/增加。