mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-05-10 22:44:11 -05:00
Cache DNSBL results
This commit is contained in:
parent
d92035acdf
commit
1e71ec6184
15
dnsbl.js
15
dnsbl.js
|
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user