bravo/checker_bl

PHP 类,用于服务 checkerbl.pro

dev-master 2017-06-04 15:32 UTC

This package is not auto-updated.

Last update: 2024-09-22 13:23:52 UTC


README

安装

Composer

从命令行

composer require bravo/checker_bl:dev-master

或在您的 composer.json

{
    "require": {
        "bravo/checker_bl": "dev-master"
    }
}

基本使用

<?php
require 'vendor/autoload.php';

$checker = new CheckerBl\Task(':api_key');

$result = $checker->perform('ya.ru');

$result->link(); # => http://checkerbl.pro/bl_check/Dg25PX
$result->has_detects(); # => true
$result->has_detects('uribl'); # => true
$result->has_detects(['barracuda', 'sem_fresh']); # => false
$result->detects() # ['uribl']

$result->results();
/* 
Array
(
    [_sorbs_http] => false
    [_sorbs_misc] => false
    ..........
    [uribl] => true
    [spamcop] => false
)
*/

日志记录

您可以将实现 Psr\Log\LoggerInterface 接口的 自己的 日志类传递给选项

<?php 

$logger = new YourLogger('./logs', YourLogger::DEBUG);
$checker = new CheckerBl\Task(':api_key', array(
    'logger' => $logger
));

延迟检查

<?php
# ........
$response = $checker->perform('ya.ru', 'later');

//... do stuff

do{
    $response = $checker->get($response->id);
    sleep(1);
}while($response->response_code()==206);


错误

当获取到状态码不等于 2** 时,将抛出异常

类名描述
CheckerBl\ThreadsLimitException当获取到状态码为 429
CheckerBl\UnProcessableException当获取到状态码为 422。有 getErrors() 方法,它包含错误数组。
CheckerBl\TimeoutException当获取到状态码为 408。有 getTaskId() 方法,它将返回创建的任务的 id
CheckerBl\UnAuthorizedException当获取到状态码为 401
CheckerBl\ResponseError当获取到状态码不等于 2** 和上述所列状态码。

还有哪些内容?

如果查看服务的 API,我们会看到以下内容

{
  "bl_checker_task": {
    "id": "pxjDgB",
    "hostname": "example.com",
    "resolved_ip": "93.184.216.34",
    "results": [
      {
        "sys_name": "_sorbs_http",
        "human_name": "SORBS HTTP",
        "status": "clear"
      },
      {
        "sys_name": "_sorbs_socks",
        "human_name": "SORBS SOCKS",
        "status": "dirty"
      },
      {
        "sys_name": "sorbs_spam",
        "human_name": "SORBS Spam",
        "status": "check_error"
      }
    ]
  }
}

可以直接访问每个哈希键 bl_checker_task,如下所示

<?php 
# ....init 
$response = $checker->perform('ya.ru');
$response->hostname; # => ya.ru
$reponse['hostname']; # => ya.ru
$response->id; # pxjDgB
$responee['id']; # pxjDgB
.......