elegisandi/iab-bot-detect

验证用户代理与IAB蜘蛛和机器人列表

v2.1.1 2018-11-27 03:31 UTC

This package is auto-updated.

Last update: 2024-09-27 15:53:03 UTC


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

    抛出一个 错误异常

    准备用于机器人检测过程的所需缓存文件。

错误异常

  • IABRequestException
  • IABBackupException
  • InvalidIABCacheException
  • InvalidIABCredentialsException

贡献

首先打开一个问题来讨论潜在的变化/增加。

许可

MIT