/** * 函数名: validateIP * 函数功能: 验证IP的合法性 * 传入参数: what:点分十进制的IP(如:192.168.1.2) * 返回值: true:what为合法IP false: what为非法IP **/ function validateIP(what) { if(what.search(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) == -1) return false; var fs = 0,ls = 0; var myArray = what.split(/\./); var i; for( i = 0; i < 4; i ++ ) { if( !isNumeric(myArray[i]) ) return false; var t=atoi(myArray[i]); /* 每个域值范围0-255 */ if( (t<0) || (t>255) ) return false; } fs= atoi(myArray[0]); //取第一位进行校验 ls = atoi(myArray[3]); //取最后一位进行校验 /* 主机部分不能全是1和0(第一位不能为255和0),网络部分不能全是0(最后一位不能为0) */ if((fs == 255) || (fs ==0) || (ls == 0)) { return false; } return true; } /** * 函数名: validateMask * 函数功能: 验证子网掩码的合法性 * 传入参数: MaskStr:点分十进制的子网掩码(如:255.255.255.192) * 调用函数: _checkIput_fomartIP(ip) * 返回值: true:MaskStr为合法子网掩码 false: MaskStr为非法子网掩码 **/ function validateMask(MaskStr) { /* 有效性校验 */ var IPPattern = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ if(!IPPattern.test(MaskStr))return false; /* 检查域值 */ var IPArray = MaskStr.split("."); var ip1 = parseInt(IPArray[0]); var ip2 = parseInt(IPArray[1]); var ip3 = parseInt(IPArray[2]); var ip4 = parseInt(IPArray[3]); /* 每个域值范围0-255 */ 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; } /** * 函数名: _checkIput_fomartIP * 函数功能: 返回传入参数对应的8位二进制值 * 传入参数: ip:点分十进制的值(0~255),int类型的值, * 主调函数: validateMask * 返回值: ip对应的二进制值(如:传入255,返回11111111;传入1,返回00000001) **/ function _checkIput_fomartIP(ip) { return (ip+256).toString(2).substring(1); //格式化输出(补零) } /** * 函数名: convertIP * 函数功能: 传入参数string nnn.nnn.nnn.nnn 转化为long format IP * 返回值: 转化后的IP **/ function convertIP( what ) { if( !checkIP( what ) ) return 0; var myArray = what.split(/\./); var ip = (256*256*256)*(myArray[0]) + (256*256)*(myArray[1]) + 256*(myArray[2]) + 1*myArray[3]; return ip; } /** * 函数名: checkIP * 函数功能: 验证IP的合法性 * 传入参数: what:点分十进制的IP(如:192.168.1.2) * 返回值: true:what为合法IP false: what为非法IP **/ function checkIP(what) { if(what.search(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) == -1) return false; var fs = 0,ls = 0; var myArray = what.split(/\./); var i; for( i = 0; i < 4; i ++ ) { if( !isNumeric(myArray[i]) ) return false; var t=atoi(myArray[i]); /* 每个域值范围0-255 */ if( (t<0) || (t>255) ) return false; } return true; } /** * 函数名: splitString * 函数功能: 分割字符串存入数值中 * 传入参数: str要分割的字符串,splitor分割标示符 * 返回值: Array **/ function splitString( str, splitor ) { var a = new Array(); var n = 0, c; a[n]=""; for( var i=0; i < str.length; i ++ ) { c = str.charAt(i); if( c != splitor ) { a[n] +=c; } else { n ++; a[n]=""; } } return a; } /** * 函数名: isNumeric * 函数功能: 检测是否是数字 * 传入参数: 传入strval参数 * 返回值: true:strval为数字 false:strval为非数字 **/ function isNumeric(strval) { var c; for (var i=0; i<strval.length;i++) { c =strval.charAt(i); if (c < "0" || c > "9") { return false; } } return true; } //检测是否大于0 function isMoreThanOne(strval) { var c; for (var i=0; i<strval.length;i++) { c =strval.charAt(i); if (c < "1" || c > "9") { return false; } } return true; } function cvrtStr(src) { var c, i, s = ""; for( i = 0; i < src.length; i ++ ) { c = src.charAt(i); if( (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') ) c = '_'; s += c; } return s; } function trim(s) { if (s == null) { return s; } var i; var beginIndex = 0; var endIndex = s.length - 1; for (i=0; i<s.length; i++) { if (s.charAt(i) == ' ' || s.charAt(i) == ' ') { beginIndex++; } else { break; } } for (i = s.length - 1; i >= 0; i--) { if (s.charAt(i) == ' ' || s.charAt(i) == ' ') { endIndex--; } else { break; } } if (endIndex < beginIndex) { return ""; } return s.substring(beginIndex, endIndex + 1); } //查询是否为数字类型 function isDigit(cCheck) { return (('0'<=cCheck) && (cCheck<='9')); } function checkNumber(s) { if(s==null)return false; s=trim(s); for (var i=0; i < s.length; i++) { var c = s.charAt(i); if (!(isDigit(c))) { return false; } } return true; }
详细解决方案
js验证ip地址跟子网掩码等
热度:575 发布时间:2013-12-02 12:00:40.0
相关解决方案
- C#设立本地网络(DNS、网关、子网掩码、IP)
- ISP商提供给小弟我的IP/Netmask。具体的Netmask(子网掩码)是多少
- java 获得默认网关 和 子网掩码 本机
- MFC自动获取网络地址函数实现-广播地址,网关,子网掩码
- c#批改本地连接工具 ip地址,dns,网关,子网掩码
- 黑猴子的家:子网掩码 与 IP 的关系
- ip,子网掩码,网关,dns
- 一文讲懂什么是三层交换机、网关、DNS、子网掩码、MAC地址
- IP地址(分类)、子网掩码、网络号、主机号、子网号
- C++修改WIN10的ip、子网掩码、网关、DNS
- 如何形象生动的解释ip地址、子网掩码、网关、DNS(域名系统)、端口号等概念
- IP地址、网络号、主机号、网络地址、子网掩码、网关、192.168.0.1/24是什么意思
- 第七周-day31-网络基础-子网掩码(上)
- 计算机网络之ip、子网掩码、网络号、主机号等概念解析
- IP、子网掩码、缺省网关/默认网关、DNS、服务器、端口概念总结
- 网络地址 子网掩码 广播地址计算
- Linux ifconfig 后没有ip地址,子网掩码,和网关
- c#获取本地连接的ip 子网掩码 网关 DNS
- IP地址-子网掩码-默认网关之间的关系
- 子网掩码 网段 网关
- IP地址,子网掩码,默认网关
- 子网掩码,主机数,子网数的相关计算
- [转载]Mac地址、IP、子网掩码、网关、DNS(转)
- IOCTL获取和配置IP地址/子网掩码/网关
- IP 和 子网掩码 计算
- struct ifreq结构体与ip,子网掩码,网关等信息
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址,以及ip段(如192.168.0.1/24)是什么意思?
- IP地址,子网掩码,网关和MAC的区别
- 子网掩码(学习笔记)
- 计算机网络知识(vlan、三层交换机、网关、DNS、子网掩码、Mac)