30 lines
1.4 KiB
JavaScript
30 lines
1.4 KiB
JavaScript
const crypto = require('crypto');
|
|
module.exports = {
|
|
name:"banHandler",
|
|
check: async function(req){
|
|
return new Promise(async (resolve,reject) => {
|
|
let hash = req.headers["cf-connecting-ip"] == undefined ? crypto.createHash('md5').update("localhost").digest('hex') : crypto.createHash('md5').update(req.headers["cf-connecting-ip"]).digest('hex')
|
|
let ban = await commands.get("query").function("SELECT idBan from tbl_bans WHERE dtIpHash = ?",[hash])
|
|
if(ban.length == 0){
|
|
resolve()
|
|
return
|
|
}else{
|
|
reject()
|
|
return
|
|
}
|
|
})
|
|
},
|
|
ban: async function(req){
|
|
if(req.headers["cf-connecting-ip"] != undefined){
|
|
if(config.banhandler.whitelisted.includes(req.headers["cf-connecting-ip"]))
|
|
return
|
|
}
|
|
let hash = req.headers["cf-connecting-ip"] == undefined ? crypto.createHash('md5').update("localhost").digest('hex') : crypto.createHash('md5').update(req.headers["cf-connecting-ip"]).digest('hex')
|
|
await commands.get("query").function("INSERT INTO tbl_bans (dtIpHash,dtTimestamp) VALUES (?,?)",[hash, new Date().getTime()])
|
|
ignorelist[hash] = hash
|
|
},
|
|
unban: async function(hash){
|
|
await commands.get("query").function("DELETE FROM tbl_bans WHERE dtIpHash = ?",[hash])
|
|
delete ignorelist[hash]
|
|
}
|
|
} |