Net_DNSBL prüft, ob Hostnamen oder URLs sich in einer oder mehrerer Blackhole- oder Spam-Liste befinden. Unterstützt werden DNSBL, Real-time Blackhole List (RBL) und die Spam URI Realtime Blocklist (SURBL).
Achtung: derzeit funktioniert dies nur mit IPv4-Adressen.
Beginen wir mit einem einfachen Beispiel. Es soll geprüft werden, ob eine Hostadresse sich in zwei Blacklists wiederfindet:
<?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)) {
// mach was
}
?>
Das nächste Beispiel versucht herauszufinden, ob eine URL in einer SURBL zu finden ist:
<?php
require_once 'Net/DNSBL/SURBL.php';
$surbl = new Net_DNSBL_SURBL();
if ($surbl->isListed($addData['url'])) {
// do something
}
?>
Im nächsten Beispiel wird eine Reihe von URLs überprüft, die innerhalb eines Textes vorkommen. Der Code zur Ermittlung der URLs befindet sich auf http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php.
<?php
foreach ($extracted_urls as $surbl_check_url) {
if ($surbl->isListed($surbl_check_url)) {
// mach was
break;
}
}
?>
Hier eine Überprüfung, ob der eigene Server irgendwo gelistet ist:
<?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']);
}
?>