function ipverify(ip_string){ var c; var n = 0; var ch = ".0123456789"; if (ip_string.length < 7 || ip_string.length > 15) return false; for (var i = 0; i < ip_string.length; i++){ c = ip_string.charAt(i); if (ch.indexOf(c) == -1) return false; else{ if (c == '.'){ if(ip_string.charAt(i+1) != '.') n++; else return false; } } } if (n != 3) return false; if (ip_string.indexOf('.') == 0 || ip_string.lastIndexOf('.') == (ip_string.length - 1)) return false; szarray = [0,0,0,0]; var remain; var i; for(i = 0; i < 3; i++){ var n = ip_string.indexOf('.'); szarray[i] = ip_string.substring(0,n); remain = ip_string.substring(n+1); ip_string = remain; } szarray[3] = remain; for(i = 0; i < 4; i++){ if (szarray[i] < 0 || szarray[i] > 255){ return false; } } return true; } function is_ipaddr(ip_string){ if(ip_string.length == 0){ return false; } if (!ipverify(ip_string)){ return false; } return true; } function is_maskaddr(mask_string){ var i,j; var substr = mask_string; var val, cnt = 0, num = 128, pos = 0; a = new Array(32); if(mask_string.length == 0){ return false; } if (!ipverify(mask_string)){ return false; } if(mask_string == "0.0.0.0") { return true; } for(i = 0; i < 4; i++) { pos = substr.indexOf('.',0); if(pos == -1) { val = parseInt(substr); } else { val = parseInt(substr.substring(0, pos+1)); substr = substr.substring(pos + 1, substr.length + 1); } for (j = 0; j < 8; j++) { a[8*i + j] = (val&(num>>j))>>(7-j); } } for(j = 0; j < 31; j++) { if(a[j] != a[j+1]) { cnt++; } } if(cnt > 1 || (a[30] == 0 && a[31] == 1)) { return false; } return true; } function is_gatewayaddr(gateway_string){ if(gateway_string.length == 0){ return false; } if (!ipverify(gateway_string)){ return false; } return true; } function is_dnsaddr(dns_string){ if(dns_string.length == 0){ return false; } if (!ipverify(dns_string)){ return false; } return true; } function is_subnet(ip,mask,subip,submask){ var i = 0,j = 0, pos = 0, cnt = 0; var str_ip_a = ip, str_mask_a = mask, str_ip_b = subip, str_mask_b = submask; ip_a = new Array(4); mask_a = new Array(4); ip_b = new Array(4); mask_b = new Array(4); for(i = 0; i < 4; i++) { pos = str_ip_a.indexOf('.',0); if(pos == -1) { ip_a[i] = parseInt(str_ip_a); } else { ip_a[i] = parseInt(str_ip_a.substring(0, pos+1)); str_ip_a = str_ip_a.substring(pos + 1, str_ip_a.length + 1); } } for(i = 0; i < 4; i++) { pos = str_mask_a.indexOf('.',0); if(pos == -1) { mask_a[i] = parseInt(str_mask_a); } else { mask_a[i] = parseInt(str_mask_a.substring(0, pos+1)); str_mask_a = str_mask_a.substring(pos + 1, str_mask_a.length + 1); } } for(i = 0; i < 4; i++) { pos = str_ip_b.indexOf('.',0); if(pos == -1) { ip_b[i] = parseInt(str_ip_b); } else { ip_b[i] = parseInt(str_ip_b.substring(0, pos+1)); str_ip_b = str_ip_b.substring(pos + 1, str_ip_b.length + 1); } } for(i = 0; i < 4; i++) { pos = str_mask_b.indexOf('.',0); if(pos == -1) { mask_b[i] = parseInt(str_mask_b); } else { mask_b[i] = parseInt(str_mask_b.substring(0, pos+1)); str_mask_b = str_mask_b.substring(pos + 1, str_mask_b.length + 1); } } for(i = 0; i < 4; i++) { if((ip_a[i]&mask_a[i]) == (ip_b[i]&mask_a[i]) && mask_a[i] <= mask_b[i]) { cnt++; } } if(cnt != 4) { return false; } return true; } function macverify(mac_string){ var c; var n = 0; var ch = "-0123456789ABCDEFabcdef"; if (mac_string.length != 17) return false; for (var i = 0; i < mac_string.length; i++){ c = mac_string.charAt(i); if (ch.indexOf(c) == -1) return false; else{ if (c == '-') n++; } } if (n != 5) return false; for(var i = 2; i < 17; i += 3){ if (mac_string.charAt(i) != '-') return false; } return true; } function is_macaddr(mac_string){ if(mac_string.length == 0){ return false; } if (!macverify(mac_string)){ return false; } return true; } function is_number(num_string,nMin,nMax){ var c; var ch = "-0123456789"; if(num_string.length == 0){ return false; } for (var i = 0; i < num_string.length; i++){ c = num_string.charAt(i); if (ch.indexOf(c) == -1) return false; } if(parseInt(num_string) < nMin || parseInt(num_string) > nMax) return false; return true; } function is_number_range_ok(num_string,nMin,nMax){ var c; var num1; var num2; c = num_string.indexOf('-',0); if(c == 0) { return false; } if(c == -1) { return is_number(num_string,nMin,nMax); } else { num1 = num_string.substring(0,c); num2 = num_string.substring(c+1,num_string.length+1); if(is_number(num1,nMin,nMax) && is_number(num2,nMin,nMax) && parseInt(num1) < parseInt(num2)) return true; return false; } } function is_number_string(num_string,minlength,maxlength){ var c; var nums="0123456789" if(name_string.length < minlength || name_string.length > maxlength) { return false; } for (var i = 0; i < num_string.length; i++) { c = num_string.charAt(i); if (nums.indexOf(c) == -1) { return false; } } return true; } function charCompare(szname,en_limit,cn_limit){ var c; var ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.<>,[]{}?/+=|\\'\":;~!#$%()` & "; if(szname.length > en_limit) return false; for (var i = 0; i < szname.length; i++){ c = szname.charAt(i); if (ch.indexOf(c) == -1){ if(szname.length > cn_limit) return false; } } return true; } function is_string(name_string){ var EN_LIMIT = 64; var CN_LIMIT = 32; if(name_string.length == 0){ return false; } if(!charCompare(name_string,EN_LIMIT,CN_LIMIT)){ return false; } else return true; }