harm-smits/webcrawler-verifier

PHP库,提供验证用户代理身份的功能。

2.1.1 2022-01-13 13:53 UTC

This package is auto-updated.

Last update: 2024-09-13 20:03:30 UTC


README

Webcralwer-Verifier是一个PHP库,用于确保机器人来自它们声明的操作者,例如,Googlebot实际上是来自Google,而不是来自某个伪装者。

安装

使用Composer安装

如果您使用Composer来管理依赖关系,您可以使用它添加Requests。

composer require harm-smits/webcrawler-verifier

{
    "require": {
        "harm-smits/webcrawler-verifier": ">=1.0.0"
    }
}

使用方法

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

$userAgent = 'Some user agent';
$ip = '192.168.0.1';

$webcrawlerVerifier = new \WebcrawlerVerifier\WebcrawlerVerifier();
$verifiedStatus = $webcrawlerVerifier->verify(
    $userAgent, 
    $ip
);

if ($verifiedStatus === $webcrawlerVerifier::VERIFIED) {
    echo 'Good webcrawler';
} elseif ($verifiedStatus === $webcrawlerVerifier::UNVERIFIED) {
    echo 'Bad webcrawler';
} else {
    // Alias `$verifiedStatus === $webcrawlerVerifier::UNKNOWN`
    echo 'Unknown good or bad wecrawler';
}

<?php
// This file is generated by Composer
require_once 'vendor/autoload.php';

if (!empty($_SERVER['HTTP_USER_AGENT']) && !empty($_SERVER['REMOTE_ADDR'])) {
    $webcrawlerVerifier = new \WebcrawlerVerifier\WebcrawlerVerifier();
    $verifiedStatus = $webcrawlerVerifier->verify(
        $_SERVER['HTTP_USER_AGENT'], 
        $_SERVER['REMOTE_ADDR']
    );

    if ($verifiedStatus === $webcrawlerVerifier::VERIFIED) {
        echo 'Good webcrawler';
    } elseif ($verifiedStatus === $webcrawlerVerifier::UNVERIFIED) {
        echo 'Bad webcrawler';
    } else {
        // Alias `$verifiedStatus === $webcrawlerVerifier::UNKNOWN`
        echo 'Unknown good or bad wecrawler';
    }
}

内置爬虫检测

按公司

按爬虫名称

  • 即将推出

欢迎贡献。

工作原理

第一步是识别。

如果用户代理识别为正在检查的机器人之一,它将进入第二步进行验证。如果不是,则不报告。

第二步是验证。

通过查看客户端的网络地址验证用户代理中报告的机器人。大型机器人结合dns +反向dns查找工作。这不是黑客行为,这是官方推荐的方式。ip解析为提供者的主机名,主机名有反向dns条目指向该ip。这给了爬虫操作员更改和添加网络而不冒被网站封锁的风险的自由。

另一种方法是维护ip地址列表。这种方法用于那些没有正式支持第一种方法的操作者。它还可以与第一种方法结合使用,以避免dns验证的一次性成本。

除了需要的地方(对于第二种方法)之外,此项目不维护ip列表。目前可以在互联网上找到的所有列表似乎都过时了。这正是问题所在……它们将始终落后于操作者使用的ip范围。

贡献

不要犹豫,创建一个pull请求。每个贡献都受到赞赏。

变更日志

许可