diff --git a/plugins/op_waf/index.py b/plugins/op_waf/index.py index 31de0d03d..afbc7572d 100755 --- a/plugins/op_waf/index.py +++ b/plugins/op_waf/index.py @@ -376,7 +376,95 @@ def removeIpWhite(): cjson = public.getJson(content) public.writeFile(path, cjson) - return public.returnJson(True, '设置成功!') + return public.returnJson(True, '设置成功!') + +def addIpBlack(): + args = getArgs() + data = checkArgs(args, ['start_ip', 'end_ip']) + if not data[0]: + return data[1] + + start_ip = args['start_ip'] + end_ip = args['end_ip'] + + path = getRuleJsonPath('ip_black') + content = public.readFile(path) + content = json.loads(content) + + data = [] + + start_ip_list = start_ip.split('.') + tmp = [] + for x in range(len(start_ip_list)): + tmp.append(int(start_ip_list[x])) + + end_ip_list = end_ip.split('.') + tmp2 = [] + for x in range(len(end_ip_list)): + tmp2.append(int(end_ip_list[x])) + + data.append(tmp) + data.append(tmp2) + + content.append(data) + + cjson = public.getJson(content) + public.writeFile(path, cjson) + return public.returnJson(True, '设置成功!') + +def removeIpBlack(): + args = getArgs() + data = checkArgs(args, ['index']) + if not data[0]: + return data[1] + + index = args['index'] + + path = getRuleJsonPath('ip_black') + content = public.readFile(path) + content = json.loads(content) + + k = content[int(index)] + content.remove(k) + + cjson = public.getJson(content) + public.writeFile(path, cjson) + return public.returnJson(True, '设置成功!') + +def setIpv6Black(): + args = getArgs() + data = checkArgs(args, ['addr']) + if not data[0]: + return data[1] + + addr = args['addr'].replace('_',':') + path = getRuleJsonPath('ipv6_black') + + content = public.readFile(path) + content = json.loads(content) + content.append(addr) + + cjson = public.getJson(content) + public.writeFile(path, cjson) + return public.returnJson(True, '设置成功!') + +def delIpv6Black(): + args = getArgs() + data = checkArgs(args, ['addr']) + if not data[0]: + return data[1] + + addr = args['addr'].replace('_',':') + path = getRuleJsonPath('ipv6_black') + + content = public.readFile(path) + content = json.loads(content) + + content.remove(addr) + + cjson = public.getJson(content) + public.writeFile(path, cjson) + return public.returnJson(True, '设置成功!') def removeSiteRule(): args = getArgs() @@ -696,6 +784,14 @@ if __name__ == "__main__": print addIpWhite() elif func == 'remove_ip_white': print removeIpWhite() + elif func == 'add_ip_black': + print addIpBlack() + elif func == 'remove_ip_black': + print removeIpBlack() + elif func == 'set_ipv6_black': + print setIpv6Black() + elif func == 'del_ipv6_black': + print delIpv6Black() elif func == 'remove_site_rule': print removeSiteRule() elif func == 'set_obj_status': diff --git a/plugins/op_waf/js/op_waf.js b/plugins/op_waf/js/op_waf.js index 9fbf8f729..bc8f83b82 100755 --- a/plugins/op_waf/js/op_waf.js +++ b/plugins/op_waf/js/op_waf.js @@ -667,10 +667,56 @@ function getIpv6Address(callback){ // 添加ipv6请求 -function AddIpv6Req(ip,callback){ - owPost('set_ipv6_back', {addr:ip}, function(data){ - console.log(data); - // if(callback) callback(rdata); +function addIpv6Req(ip,callback){ + var ip = ip.replace(/:/g, '_'); + owPost('set_ipv6_black', {addr:ip}, function(data){ + var rdata = $.parseJSON(data.data); + if(callback) callback(rdata); + }); +} + +// 添加ipv6请求 +function removeIpv6Black(ip,callback){ + var ip = ip.replace(/:/g, '_'); + owPost('del_ipv6_black', {addr:ip}, function(data){ + var rdata = $.parseJSON(data.data); + layer.msg(rdata.msg,{icon:rdata.status?1:2}); + $('.tab_list .tab_block:eq(1)').click(); + + if(callback) callback(rdata); + }); +} + +//添加IP段到IP黑名单 +function addIpBlack() { + var pdata = { + start_ip: $("input[name='start_ip']").val(), + end_ip: $("input[name='end_ip']").val() + } + + if (pdata['start_ip'].split('.').length < 4 || pdata['end_ip'].split('.').length < 4) { + layer.msg('起始IP或结束IP格式不正确!'); + return; + } + + owPost('add_ip_black', pdata, function(data){ + var rdata = $.parseJSON(data.data); + if (rdata.status) { + ipBlack(1); + } + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); + }); +} + + +//从IP黑名单删除IP段 +function removeIpBlack(index) { + owPost('remove_ip_black', { index: index }, function (data) { + var rdata = $.parseJSON(data.data); + if (rdata.status) { + ipBlack(1); + } + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } @@ -688,7 +734,7 @@ function ipBlack(type) {
| '+ rdata[i][0].join('.') + ' | \'+ rdata[i][1].join('.') + ' | \ -删除 | \ +删除 | \
| '+ rdata[i] + ' | \ -删除 | \ +删除 | \