1: <?php
2: /*
3: You may not change or alter any portion of this comment or credits
4: of supporting developers from this source code or any supporting source code
5: which is considered copyrighted (c) material of the original comment or credit authors.
6:
7: This program is distributed in the hope that it will be useful,
8: but WITHOUT ANY WARRANTY; without even the implied warranty of
9: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10: */
11:
12: /**
13: * Protector
14: *
15: * @copyright XOOPS Project (http://xoops.org)
16: * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
17: * @package protector
18: * @author trabis <lusopoemas@gmail.com>
19: * @version $Id$
20: */
21:
22: class protector_postcommon_post_deny_by_rbl extends ProtectorFilterAbstract
23: {
24: function execute()
25: {
26: $xoops = Xoops::getInstance();
27: // RBL servers (don't enable too many servers)
28: $rbls = array(
29: 'sbl-xbl.spamhaus.org',
30: # 'niku.2ch.net' ,
31: # 'list.dsbl.org' ,
32: # 'bl.spamcop.net' ,
33: # 'all.rbl.jp' ,
34: # 'opm.blitzed.org' ,
35: # 'bsb.empty.us' ,
36: # 'bsb.spamlookup.net' ,
37: );
38:
39: $rev_ip = implode('.', array_reverse(explode('.', @$_SERVER['REMOTE_ADDR'])));
40:
41: foreach ($rbls as $rbl) {
42: $host = $rev_ip . '.' . $rbl;
43: if (gethostbyname($host) != $host) {
44: $this->protector->message .= "DENY by $rbl\n";
45: $uid = $xoops->isUser() ? $xoops->user->getVar('uid') : 0;
46: $this->protector->output_log('RBL SPAM', $uid, false, 128);
47: die(_MD_PROTECTOR_DENYBYRBL);
48: }
49: }
50:
51: return true;
52: }
53: }
54: