拦截IP相关功能提交
This commit is contained in:
@@ -1,65 +1,67 @@
|
||||
/*
|
||||
* Translated default messages for the jQuery validation plugin.
|
||||
* Locale: RU (Russian; русский язык)
|
||||
* Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
|
||||
*/
|
||||
(function ($) {
|
||||
$.extend($.validator.messages, {
|
||||
required: "Это поле необходимо заполнить.",
|
||||
remote: "Пожалуйста, введите правильное значение.",
|
||||
email: "Пожалуйста, введите корректный адрес электронной почты.",
|
||||
url: "Пожалуйста, введите корректный URL.",
|
||||
date: "Пожалуйста, введите корректную дату.",
|
||||
dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
|
||||
number: "Пожалуйста, введите число.",
|
||||
digits: "Пожалуйста, вводите только цифры.",
|
||||
creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
|
||||
equalTo: "Пожалуйста, введите такое же значение ещё раз.",
|
||||
accept: "Пожалуйста, выберите файл с правильным расширением.",
|
||||
maxlength: $.validator.format("Пожалуйста, введите не больше {0} символов."),
|
||||
minlength: $.validator.format("Пожалуйста, введите не меньше {0} символов."),
|
||||
rangelength: $.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),
|
||||
range: $.validator.format("Пожалуйста, введите число от {0} до {1}."),
|
||||
max: $.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),
|
||||
min: $.validator.format("Пожалуйста, введите число, большее или равное {0}."),
|
||||
ipCheck: $.validator.format(" Пожалуйста, введите правильный IP - адрес."),
|
||||
ipMask:"Please enter a correct IP/mask",
|
||||
ipPart:"Invalid IP part",
|
||||
ipv6MaskPart:"Mask must be exponent of 2,not greater than 128",
|
||||
ipMaskRange:"IP mask must between 0 and 32",
|
||||
srcIpNotEqDestIp:"Sourse IP and destination IP can't the same",
|
||||
ipRange:"Wrong IP format or start IP and end IP in two subnet",
|
||||
ipRange1:"start IP should smaller than end IP",
|
||||
portCheck: " Пожалуйста, введите правильный порт.",
|
||||
portRange:"Port must between 0 and 65535",
|
||||
srcIpNotEqDestIp:"Sourse IP ",
|
||||
destIpNotEqDestIp:" and destination IP ",
|
||||
srcIpIsNotValue:"Sourse IP can't be ",
|
||||
destIpIsNotValue:"Destination IP can't be ",
|
||||
IpNotEqDestIp:" can't the same",
|
||||
portMaskRange:"Port and mask must between 0 and 65535.The correct pattern is \"port/mask\".",
|
||||
chooseAreaOrIsp:"The region and the oprater must choose one",
|
||||
areaControl:"Action drop and loop do not need area control",
|
||||
ip_type: "ip type",
|
||||
ip_pattern: "ip Pattern",
|
||||
area: "area",
|
||||
isp: "isp",
|
||||
close_info: "close",
|
||||
client_ip: "client ip",
|
||||
required: "Необходимая информация",
|
||||
remote: "Исправьте эту информацию",
|
||||
email: "Введите правильный адрес электронной почты",
|
||||
url: "Введите действительный URL-адрес",
|
||||
date: "Введите действительную дату",
|
||||
dateISO: "Введите действительную дату (ISO).",
|
||||
number: "Введите действительный номер",
|
||||
digits: "Может вводить только целые числа",
|
||||
creditcard: "Введите действительный номер кредитной карты",
|
||||
equalTo: "Повторите одно и то же значение",
|
||||
accept: "Введите строку с юридическим суффиксом",
|
||||
maxlength: $.validator.format("Введите строку с максимальной длиной {0}"),
|
||||
minlength: $.validator.format("Введите строку с минимальной длиной {0}"),
|
||||
rangelength: $.validator.format("Введите строку символов,длина которой между {0} и {1}"),
|
||||
range: $.validator.format("Введите значение между {0} и {1}"),
|
||||
max: $.validator.format("Введите значение до {0}"),
|
||||
min: $.validator.format("Введите значение с минимальным значением {0}"),
|
||||
noBlankSpace:"Не может быть пробела",
|
||||
ip:"Заполните правильный IP-адрес",
|
||||
ipCheck:"Заполните правильный IP-адрес",
|
||||
ipMask:"Заполните правильный IP-адрес / маска",
|
||||
ipPart:"Ошибка формата части IP",
|
||||
ipv6MaskPart:"Mаска-показатель степени 2, небольше 128",
|
||||
ipMaskRange:"Маска IP между 0 и 32",
|
||||
srcIpNotEqDestIp:"IP-адрес источника ",
|
||||
destIpNotEqDestIp:" с IP-адресом назначения",
|
||||
IpNotEqDestIp:" не может быть одинаковым",
|
||||
srcIpIsNotValue:"IP-адрес источника не может быть ",
|
||||
destIpIsNotValue:"IP-адрес назначения не может быть",
|
||||
ipRange:"Формат диапазона IP неверен, или начальный IP-адрес и конечный IP-адрес не относятся к одному и тому же сегменту сети.",
|
||||
ipRange1:"Начальное значение IP должно меньше конечного значения IP.",
|
||||
portCheck:"Заполните правильный порт",
|
||||
notStartZero:"Пожалуйста, введите правильное значение",
|
||||
portRange:"Порт должен быть меньше 65536, отличные от нуля номера не могут начинаться с 0",
|
||||
portMaskRange:"Порт должен меньше 65536, отличные от нуля номера не могут начинаться с 0.Формат\"порт/маска\"",
|
||||
chooseAreaOrIsp:"Необходимо выбрать один регион и оператор",
|
||||
areaControl:"Действия выброса и рефлюкса не могут контролироваться на региональном уровне",
|
||||
ip_type: "Тип ip",
|
||||
ip_pattern: "Формат ip",
|
||||
area: "Зона",
|
||||
isp: "Оператор",
|
||||
close_info: "Закрыть",
|
||||
client_ip: " IP",
|
||||
ipv4: "IPv4",
|
||||
ipv6: "IPv6",
|
||||
over6: "4over6",
|
||||
over4: "6over4",
|
||||
ipv4v6:"IPv4(0.0.0.0) or IPv6(::)",
|
||||
all: "all",
|
||||
ip_subnet: "Subnet",
|
||||
ip_range: "ip Range",
|
||||
timeout:"timeout",
|
||||
areaIpPrefix:"Forbiden value: ",
|
||||
domainCheck:"Please enter a valid domain.",
|
||||
checkParent:"Configuration Type must match it's parent.",
|
||||
specServiceCodeCheck:"Protocol No is repeat.",
|
||||
compareDate:"The end time should not be earlier than the start time.",
|
||||
hexCheck:"Please enter the HEX format character",
|
||||
invisibleChar:"Please enter the visible character"
|
||||
ipv4v6:"Введите действительный IP-адрес, например IPv4 (0.0.0.0) или IPv6 (::)",
|
||||
all: "Все",
|
||||
ip_subnet:"Маска IP-адреса/Маска подсети",
|
||||
ip_range: "Диапазон IP",
|
||||
timeout:"Превышение срока",
|
||||
areaIpPrefix:"Запрещенное значение: ",
|
||||
domainCheck:"Введите действительное доменное имя",
|
||||
checkParent:"Тип конфигурации должен соответствовать предыдущей конфигурации!",
|
||||
specServiceCodeCheck:"Повторяющийся номер протокола",
|
||||
compareDate:"Время окончания нельзя раньше времени начала",
|
||||
hexCheck:"Введите шестнадцатеричный символ",
|
||||
invisibleChar:"Введите видимые символы"
|
||||
});
|
||||
}(jQuery));
|
||||
}(jQuery));
|
||||
|
||||
@@ -362,7 +362,201 @@ $(function(){
|
||||
$(".action").on("change", function() {
|
||||
$("#serviceId").val($(this).attr("serviceId"));
|
||||
$("#protocolId").val($(this).attr("protocolId"));
|
||||
});
|
||||
var actionCode=$(this).val();
|
||||
var regionCode=$(this).attr("regionCode");
|
||||
if(!regionCode){
|
||||
regionCode=$("input[name='action']").attr("regionCode");
|
||||
}
|
||||
if(regionCode){
|
||||
if(regionCode.indexOf(",")==-1){
|
||||
$("#cfgRegionCode"+regionCode).attr("name","cfgRegionCode");
|
||||
$("#cfgType"+regionCode).attr("name","cfgType");
|
||||
$("[id^='cfgRegionCode']").each(function(){
|
||||
if($(this).attr("id")==("cfgRegionCode"+regionCode)){
|
||||
$(this).attr("name","cfgRegionCode");
|
||||
}else{
|
||||
$(this).removeAttr("name");
|
||||
}
|
||||
});
|
||||
$("[id^='cfgType']").each(function(){
|
||||
if($(this).attr("id")==("cfgType"+regionCode)){
|
||||
$(this).attr("name","cfgType");
|
||||
}else{
|
||||
$(this).removeAttr("name");
|
||||
}
|
||||
});
|
||||
}else{
|
||||
var _region='';
|
||||
var regionArr=regionCode.split(',');
|
||||
$("input[name$='cfgRegionCode'][regionType='1']").each(function(){
|
||||
for(var re in regionArr){
|
||||
if($(this).val()==regionArr[re]){
|
||||
serviceType=$(this).attr("serviceType");
|
||||
_region=regionArr[re];
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
if(_region!=''){
|
||||
regionCode=_region;
|
||||
}
|
||||
}
|
||||
var ipPortShow=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPortShow"),
|
||||
ipType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipType"),
|
||||
ipPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPattern"),
|
||||
portPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("portPattern"),
|
||||
direction=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("direction"),
|
||||
protocol=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("protocol"),
|
||||
regionType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("regionType");
|
||||
//ip,端口处理
|
||||
if(ipPortShow){
|
||||
if(ipPortShow.indexOf('1')>-1){//展示源IP,端口
|
||||
$("input[name$='srcIpAddress']").parents(".form-group").removeClass("hidden");
|
||||
$("input[name$='srcPort']").parents(".form-group").removeClass("hidden");
|
||||
}else{
|
||||
$("input[name$='srcIpAddress']").parents(".form-group").addClass("hidden");
|
||||
$("input[name$='srcPort']").parents(".form-group").addClass("hidden");
|
||||
}
|
||||
if(ipPortShow.indexOf('2')>-1){//展示目的IP,端口
|
||||
$("input[name$='destIpAddress']").parents(".form-group").removeClass("hidden");
|
||||
$("input[name$='destPort']").parents(".form-group").removeClass("hidden");
|
||||
}else{
|
||||
$("input[name$='destIpAddress']").parents(".form-group").addClass("hidden");
|
||||
$("input[name$='destPort']").parents(".form-group").addClass("hidden");
|
||||
}
|
||||
}
|
||||
if(ipType){
|
||||
var arr=ipType.split(',');
|
||||
$("select[name$='ipType'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
$("select[name$='ipType']").selectpicker("refresh");
|
||||
}
|
||||
if(ipPattern){
|
||||
arr=ipPattern.split(',');
|
||||
$("select[name$='ipPattern'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
$("select[name$='ipPattern']").selectpicker("refresh");
|
||||
}
|
||||
if(portPattern){
|
||||
arr=portPattern.split(',');
|
||||
$("select[name$='portPattern'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
$("select[name$='portPattern']").selectpicker("refresh");
|
||||
}
|
||||
if(direction){
|
||||
arr=direction.split(',');
|
||||
$("select[name$='direction'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
$("select[name$='direction']").selectpicker("refresh");
|
||||
}
|
||||
|
||||
if(protocol){
|
||||
arr=protocol.split(',');
|
||||
$("select[name$='protocol'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
$("select[name$='protocol']").selectpicker("refresh");
|
||||
}
|
||||
|
||||
//处理自定义字段
|
||||
var serviceType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("serviceType");
|
||||
if(serviceType){
|
||||
if(serviceType.indexOf("ipaddr")>-1){
|
||||
if($(this).val()==32){
|
||||
$("select[name$='protocol'] option[value='1']").removeAttr("disabled")
|
||||
}else{
|
||||
$("select[name$='protocol'] option[value='1']").attr("disabled",true);
|
||||
}
|
||||
$("select[name$='protocol']").selectpicker("refresh");
|
||||
}
|
||||
if(serviceType.indexOf("ipmulitiplex")>-1){
|
||||
$(".ipmulitiplex").removeClass("hidden");
|
||||
}else{
|
||||
$(".ipmulitiplex").addClass("hidden");
|
||||
}
|
||||
if(serviceType.indexOf("ratelimit")>-1){
|
||||
if($(this).val()==64){
|
||||
$(".ratelimit").removeClass("hidden");
|
||||
}else{
|
||||
$(".ratelimit").addClass("hidden");
|
||||
}
|
||||
}else{
|
||||
$(".ratelimit").addClass("hidden");
|
||||
}
|
||||
if($(this).val()==0x20||$(this).val()==0x60){
|
||||
$("input[name$='isAreaEffective']").each(function(){
|
||||
if($(this).val()==0){
|
||||
$(this).click();
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
//选择hex cfgkeywords需校验十六进制
|
||||
$("select[name$='isHexbin']").each(function(){
|
||||
$(this).on("change",function(){
|
||||
@@ -431,6 +625,7 @@ $(function(){
|
||||
$("input[name*='userRegion']").addClass("invisibleChar");
|
||||
$("#cancel").on("click",function(){
|
||||
window.history.back();
|
||||
return false;
|
||||
});
|
||||
});
|
||||
window.onload=function(){
|
||||
@@ -1187,4 +1382,189 @@ var validateInvisibleCharTag=function(){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
var initCommIpVal=function(){
|
||||
var regionCode,serviceType,ipPortShow,ipType,
|
||||
ipPattern,portPattern,direction,protocol,regionType;
|
||||
if($("input[name$='action']:checked").length>0){
|
||||
regionCode=$("input[name$='action']:checked").attr("regionCode");
|
||||
}else{
|
||||
regionCode=$("input[name$='action']").attr("regionCode");
|
||||
}
|
||||
if(regionCode){
|
||||
if(regionCode.indexOf(",")==-1){
|
||||
$("#cfgRegionCode"+regionCode).attr("name","cfgRegionCode");
|
||||
$("#cfgType"+regionCode).attr("name","cfgType");
|
||||
serviceType=$("input[name$='cfgRegionCode'][regionType='1'][value='"+regionCode+"']").attr("serviceType");
|
||||
}else{
|
||||
var _region='';
|
||||
var regionArr=regionCode.split(',');
|
||||
$("input[name$='cfgRegionCode'][regionType='1']").each(function(){
|
||||
for(var re in regionArr){
|
||||
if($(this).val()==regionArr[re]){
|
||||
serviceType=$(this).attr("serviceType");
|
||||
_region=regionArr[re];
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
if(_region!=''){
|
||||
regionCode=_region;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(serviceType){
|
||||
if(serviceType.indexOf("ipaddr")>-1&&$("input[name$='action']:checked").val()==32){
|
||||
$("select[name$='protocol'] option").each(function(){
|
||||
if($(this).attr("value")==1){
|
||||
$(this).removeAttr("disabled");
|
||||
}
|
||||
});
|
||||
$("select[name$='protocol']").selectpicker("refresh");
|
||||
}
|
||||
if(serviceType&&serviceType.indexOf("ipaddr")>-1&&$("input[name$='action']").val()==32){
|
||||
$("select[name$='protocol'] option").each(function(){
|
||||
if($(this).attr("value")==1){
|
||||
$(this).removeAttr("disabled");
|
||||
}
|
||||
});
|
||||
$("select[name$='protocol']").selectpicker("refresh");
|
||||
}
|
||||
if(serviceType.indexOf("ipmulitiplex")>-1){
|
||||
$(".ipmulitiplex").removeClass("hidden");
|
||||
$("input[name$='isAreaEffective']").each(function(){
|
||||
if($(this).val()==0){
|
||||
$(this).click();
|
||||
}
|
||||
})
|
||||
$(".areaInfo").addClass("hidden");
|
||||
}else{
|
||||
$(".areaInfo").removeClass("hidden");
|
||||
$(".ipmulitiplex").addClass("hidden");
|
||||
}
|
||||
if(serviceType.indexOf("ratelimit")>-1){
|
||||
if($("input[name$='action']").val()==64||$("input[name$='action']:checked").val()==64){
|
||||
$(".ratelimit").removeClass("hidden");
|
||||
}else{
|
||||
$(".ratelimit").addClass("hidden");
|
||||
}
|
||||
}else{
|
||||
$(".ratelimit").addClass("hidden");
|
||||
}
|
||||
}
|
||||
ipPortShow=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPortShow"),
|
||||
ipType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipType"),
|
||||
ipPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPattern"),
|
||||
portPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("portPattern"),
|
||||
direction=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("direction"),
|
||||
protocol=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("protocol"),
|
||||
regionType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("regionType");
|
||||
//ip,端口处理
|
||||
if(ipPortShow){
|
||||
if(ipPortShow.indexOf('1')>-1){//展示源IP,端口
|
||||
$("input[name$='srcIpAddress']").parents(".form-group").removeClass("hidden");
|
||||
$("input[name$='srcPort']").parents(".form-group").removeClass("hidden");
|
||||
}else{
|
||||
$("input[name$='srcIpAddress']").parents(".form-group").addClass("hidden");
|
||||
$("input[name$='srcPort']").parents(".form-group").addClass("hidden");
|
||||
}
|
||||
if(ipPortShow.indexOf('2')>-1){//展示目的IP,端口
|
||||
$("input[name$='destIpAddress']").parents(".form-group").removeClass("hidden");
|
||||
$("input[name$='destPort']").parents(".form-group").removeClass("hidden");
|
||||
}else{
|
||||
$("input[name$='destIpAddress']").parents(".form-group").addClass("hidden");
|
||||
$("input[name$='destPort']").parents(".form-group").addClass("hidden");
|
||||
}
|
||||
}
|
||||
if(ipType){
|
||||
var arr=ipType.split(',');
|
||||
$("select[name$='ipType'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(ipPattern){
|
||||
arr=ipPattern.split(',');
|
||||
$("select[name$='ipPattern'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(portPattern){
|
||||
arr=portPattern.split(',');
|
||||
$("select[name$='portPattern'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(direction){
|
||||
arr=direction.split(',');
|
||||
$("select[name$='direction'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(protocol){
|
||||
arr=protocol.split(',');
|
||||
$("select[name$='protocol'] option").each(function(){
|
||||
var has=false;
|
||||
for(var type in arr){
|
||||
if($(this).val()==arr[type]){
|
||||
has=true;
|
||||
if($(this).attr("disabled")){
|
||||
$(this).removeAttr("disabled")
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!has){
|
||||
$(this).attr("disabled",true);
|
||||
}
|
||||
});
|
||||
}
|
||||
return regionCode;
|
||||
}
|
||||
Reference in New Issue
Block a user