1: <?php
2:
3: // get your 12-character access key from http://www.projecthoneypot.org/
4: define('PROTECTOR_HTTPBL_KEY', '............');
5:
6: /**
7: * Class protector_postcommon_post_deny_by_httpbl
8: */
9: class Protector_postcommon_post_deny_by_httpbl extends ProtectorFilterAbstract
10: {
11: /**
12: * @return bool
13: */
14: public function execute()
15: {
16: // http:bl servers (don't enable too many servers)
17: $rbls = array(
18: 'http:BL' => PROTECTOR_HTTPBL_KEY . '.%s.dnsbl.httpbl.org');
19:
20: global $xoopsUser;
21:
22: // Initialize $rev_ip to a default value.
23: $rev_ip = '';
24:
25:
26: if (isset($_SERVER['REMOTE_ADDR'])) {
27: $rev_ip = implode('.', array_reverse(explode('.', $_SERVER['REMOTE_ADDR'])));
28: }
29: // test
30: // $rev_ip = '162.142.248.125' ;
31:
32: foreach ($rbls as $rbl_name => $rbl_fmt) {
33: $host = sprintf($rbl_fmt, $rev_ip);
34: if (gethostbyname($host) != $host) {
35: $this->protector->message .= "DENY by $rbl_name\n";
36: $uid = is_object($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
37: $this->protector->output_log('RBL SPAM', $uid, false, 128);
38: die(_MD_PROTECTOR_DENYBYRBL);
39: }
40: }
41:
42: return true;
43: }
44: }
45: