当前位置: 首页 > 工具软件 > jSIP > 使用案例 >

js ip检验/子网掩码校验/网关校验代码

宇文兴言
2023-12-01

 ip校验

   // ip校验
            function check(ip) {
                var re =
                    /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
                var bl = re.test(ip);
                if (!bl) {
                    return 'IP格式错误,范例:192.168.255.255'
                }
            

子网掩码校验

 // 子网掩码校验
            function validateMask(MaskStr) {
                var IPArray = MaskStr.split(".");
                var ip1 = parseInt(IPArray[0]);
                var ip2 = parseInt(IPArray[1]);
                var ip3 = parseInt(IPArray[2]);
                var ip4 = parseInt(IPArray[3]);

                if ((ip1 < 0 || ip1 > 255) || (ip2 < 0 || ip2 > 255) || (ip3 < 0 || ip3 > 255) || (ip4 <
                        0 ||
                        ip4 > 255)) {
                    return false;
                }

                var ip_binary = _checkIput_fomartIP(ip1) + _checkIput_fomartIP(ip2) + _checkIput_fomartIP(
                        ip3) +
                    _checkIput_fomartIP(ip4);

                if (-1 != ip_binary.indexOf("01")) {
                    return false;
                }

                return true;
            }

            function _checkIput_fomartIP(ip) {
                return (ip + 256).toString(2).substring(1); //格式化输出(补零) 
            }

网关校验: 


            /**
             * func: 网关校验: 校验IP地址,子网掩码和默认网关的关系是否正确
             * w是默认网关,y是子网掩码,i是IP地址。
             * */
            function checkIp(w, y, i) {
                var ws = w.split('.');
                var ys = y.split('.');
                var is = i.split('.');
                for (var index in ws) {
                    var cw = to8Bit(ws[index]);
                    var cy = to8Bit(ys[index]);
                    var ci = to8Bit(is[index]);
                    for (var jndex = 0; jndex < 8; jndex++) {
                        if (cy[jndex] == "1") {
                            if (cw[jndex] != ci[jndex]) return false;
                        }
                    }
                }
                return true;
            }

            function to8Bit(number) {
                var result = parseInt(number).toString(2);
                while (result.length < 8) {
                    result = "0" + result;
                }
                return result;
            }

layui中自定义校验规则——校验ip、子网掩码、网关:

  /******************* 自定义校验 ************************/ 
            form.verify({
                addr: check,
                netmask: function (MaskStr) {
                    if (!validateMask(MaskStr)) {
                        return '子网掩码格式错误,范例:255.255.255.0'
                    }
                },
                gateway: function (gateway) {
                    //获取表单区域所有值
                    let basic = form.val("filter_basic_config");
                    let ret = checkIp(gateway, basic.netmask, basic.addr)
                    // console.log("ret == ", ret)
                    if (!ret) {
                        return '网关格式错误!'
                    }
                },
            });

 类似资料: