/**
* 函数名: 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和子网掩码计算出网络地址
于IP地址与子网掩码的学习心得,对于计算机网络的学习很有用
介绍IP地址与子网掩码的相关知识
知IP地址和子网掩码_求另外六项
对于IP地址范围以及子网划分,IP地址和子网掩码的关系是怎样的pdf,对于IP地址范围以及子网划分,IP地址和子网掩码的关系是怎样的
IP地址-子网掩码-默认网关
PLC通信中的IP地址和子网掩码详解
7--IP地址与子网掩码.ppt7--IP地址与子网掩码.ppt
易语言本机IP地址、子网掩码、DNS服务器地址设置源码,本机IP地址、子网掩码、DNS服务器地址设置
c语言检测ip地址和子网掩码的程序 不同的字符串等、错误的地址、不连续的子网掩码等问题
介绍了IP地址与子网掩码的知识 以及IP地址的分类和转换
子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 ...
IP地址知识_子网掩码与子网划分
实例1):IP地址和子网掩码的要点和计算实例 实例2):一个公司有10个部门,要求给每个部门划分不同的网段,但是都在192.
IpRangeUtil;java 校验Ip段(子网掩码); 支持 iptables.patterns=10.0.0.0/8,192.168.0.0/16,172.16.0.0/12,202.195.129.240/28,202.195.128.0/20
子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器子网掩码IP计算器
对于IP地址范围以及子网划分,IP地址和子网掩码的关系是怎样pdf,西门子对于IP地址范围以及子网划分,IP地址和子网掩码的关系是怎样的?
实现通过ip地址和子网掩码位数计算得出子网段的ip地址范围
IP地址和子网掩码.doc