slicksky/spam-blacklist-query

查看域名或IP是否被最流行的垃圾邮件列表服务列入黑名单。

v0.2.6 2023-04-17 16:47 UTC

This package is auto-updated.

Last update: 2024-09-21 21:01:43 UTC


README

此小型软件包可帮助您确定域名或IP是否被最流行的垃圾邮件列表服务列入黑名单。

以下是工作原理

  1. 将输入域名与域名垃圾邮件黑名单服务(DNSBL URI)进行测试
  2. 获取给定域名的邮件服务器列表(MX记录)。
  3. 获取每个邮件服务器的IP列表(A记录)。
  4. 将这些IP与这些IP垃圾邮件黑名单服务(DNSBL IP)进行测试

安装

在您的项目根目录中运行此命令

composer require slicksky/blacklist-spam-query

用法

require 'vendor/autoload.php';

use SlickSky\SpamBlacklistQuery\Domain;

// Test a Domain
$sampleDomain = 'google.com';
$domainResults = (new Domain($sampleDomain))
   ->query(); // returns Collection

// Get the listed records only
$listedIps = $domainResults->listed(); // returns Collection

// Ask if the domain or any IP records are listed
$isListed = $domainResults->isListed(); // returns bool

自定义黑名单服务(DNSBL)

Config类中有4组黑名单

  1. Config::BLACKLISTS_IP - 用于测试IP
  2. Config::BLACKLISTS_URI - 用于测试域名/子域名
  3. Config::BLACKLISTS_EXTENDED - 最受欢迎的黑名单混合列表
  4. Config::BLACKLISTS_FULL - 我迄今为止找到的所有黑名单的混合列表
use SlickSky\SpamBlacklistQuery\Config;
use SlickSky\SpamBlacklistQuery\Domain;

$blacklists = new Config(
   blacklistsIp: ['dnsbl-1.uceprotect.net' => 'UCEPROTECT'],
   blacklistsUri: ['zen.spamhaus.org' => 'SpamHaus Zen'],
);

$domainResults = (new Domain($sampleDomain, $blacklists))
   ->query(); // returns Collection

进一步定制

use SlickSky\SpamBlacklistQuery\Blacklist;
use SlickSky\SpamBlacklistQuery\Config;
use SlickSky\SpamBlacklistQuery\MxIp;

// Test a single IP
$ip = new MxIp('8.8.8.8');

// Is this IP valid?
$isInvalid = $ip->isInvalid(); // returns bool

// Query the IP
foreach (Config::BLACKLISTS_IP as $serviceHost => $serviceName) {
   $isListed = $ip->query(
      new Blacklist($serviceHost, $serviceName, $ip->reverse()),
   ); // returns bool
}

// Get the listed state
$isListed = $ip->isListed(); // returns bool

// Get the blacklists objects and their results
$blacklistsResults = $ip->blacklists; // Collection

结果

SlickSky\SpamBlacklistQuery\Result::__set_state([
   'items' => [
    SlickSky\SpamBlacklistQuery\MxRecord::__set_state([
       'host' => 'google.com',
       'class' => 'IN',
       'ttl' => 377,
       'type' => 'MX',
       'pri' => 10,
       'target' => 'smtp.google.com',
       'listed' => false,
       'blacklists' =>
      SlickSky\SpamBlacklistQuery\Collection::__set_state([
         'items' => [
          SlickSky\SpamBlacklistQuery\Blacklist::__set_state([
             'listed' => false,
             'host' => 'dnsbl-1.uceprotect.net',
             'name' => 'UCEPROTECT',
             'ipReverse' => 'google.com',
             'responseTime' => 0.012,
          ]),
        ],
      ]),
       'ips' =>
      SlickSky\SpamBlacklistQuery\Collection::__set_state([
         'items' => [
          SlickSky\SpamBlacklistQuery\MxIp::__set_state([
             'blacklists' =>
            SlickSky\SpamBlacklistQuery\Collection::__set_state([
               'items' => [
                SlickSky\SpamBlacklistQuery\Blacklist::__set_state([
                   'listed' => false,
                   'host' => 'dnsbl-1.uceprotect.net',
                   'name' => 'UCEPROTECT',
                   'ipReverse' => '27.2.251.142',
                   'responseTime' => 0.012,
                ]),
              ],
            ]),
             'invalid' => false,
             'listed' => false,
             'ip' => '142.251.2.27',
          ]),
        ],
      ]),
    ]),
  ],
])

许可证

Spam Blacklist Query 是开源软件,采用MIT许可证。