Cache DNSBL results

This commit is contained in:
Guangcong Luo 2013-09-13 10:19:00 -07:00
parent d92035acdf
commit 1e71ec6184

View File

@ -2,15 +2,16 @@ var dns = require('dns');
var blocklist = 'zen.spamhaus.org';
var dnsblCache = {};
exports.query = function queryDnsbl(ip, callback) {
if (ip in dnsblCache) {
callback(dnsblCache[ip]);
return;
}
var reversedIp = ip.split('.').reverse().join('.');
dns.resolve4(reversedIp+'.'+blocklist, function(err, addresses) {
if (err) {
// not on blacklist
callback(false);
} else {
// on blacklist
callback(true);
}
var isBlocked = dnsblCache[ip] = !err;
callback(isBlocked);
});
}