PEAR::Net_DNSBL は、指定したホストあるいは URL が、 DNS ベースのブラックホールリスト (DNSBL、あるいは リアルタイムブラックホールリスト: RBL) あるいは Spam URI リアルタイムブロックリスト (SURBL) にリストされているかどうかを調べます。
現時点では IPv4 のIPアドレスにしか対応していないことに注意してください。
まずは簡単な例からはじめましょう。リモートホストが、 ふたつのブラックリストにリストされているかどうかをチェックします。
<?php require_once 'Net/DNSBL.php'; $dnsbl = new Net_DNSBL(); $remoteIP = $_SERVER['REMOTE_ADDR']; $remoteIP = '81.70.69.193'; $dnsbl->setBlacklists(array('sbl-xbl.spamhaus.org', 'bl.spamcop.net')); if ($dnsbl->isListed($remoteIP)) { // 何かの処理 } ?> |
この例では、URL が SURBL(Spam URI Realtime Blocklists) にリストされているかどうかをチェックします。
<?php require_once 'Net/DNSBL/SURBL.php'; $surbl = new Net_DNSBL_SURBL(); if ($surbl->isListed($addData['url'])) { // 何かの処理 } ?> |
<?php foreach ($extracted_urls as $surbl_check_url) { if ($surbl->isListed($surbl_check_url)) { // 何かの処理 break; } } ?> |
ホストが一覧に載っていた場合に、詳細な情報を取得してみましょう。
<?php require_once 'Net/DNSBL.php'; $dnsbl = new Net_DNSBL(); $dnsbl->setBlacklists(array('sbl-xbl.spamhaus.org', 'bl.spamcop.net')); if ($dnsbl->isListed($_SERVER['REMOTE_ADDR'])) { var_dump($dnsbl->getDetails($_SERVER['REMOTE_ADDR'])); var_dump($dnsbl->getTxt($_SERVER['REMOTE_ADDR'])); var_dump($dnsbl->getListingBl($_SERVER['REMOTE_ADDR'])); var_dump($dnsbl->getListingRecord($_SERVER['REMOTE_ADDR']); } ?> |