IP地址和子网掩码的验证
2010-03-12 15:43
302 查看
/**
* 函数名: validateMask
* 函数功能: 验证子网掩码的合法性
* 函数作者: 236F(fuwei236#gmail.com)
* 传入参数: 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]);
if ( ip1<0 || ip1>255 /* 每个域值范围0-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位二进制值
* 函数作者: 236F(fuwei236#gmail.com)
* 传入参数: ip:点分十进制的值(0~255),int类型的值,
* 主调函数: validateMask
* 调用函数: 无
* 返回值: ip对应的二进制值(如:传入255,返回11111111;传入1,返回00000001)
**/
function _checkIput_fomartIP(ip)
{
return (ip+256).toString(2).substring(1); //格式化输出(补零)
}
===================分隔符===================
测试页面test.htm
===================分隔符===================
<html>
<head>
<title></title>
<script src="validateMask.js"></script>
<script>
function test(MaskStr)
{
alert("IP地址为: "+ MaskStr + " 验证结果:" + validateMask(MaskStr));
}
</script>
</head>
<body>
<center>
<h1>子网掩码验证
</h1>
<input type="text" name="mask" id="mask" value="">
<input type="button" name="mytest" id="mytest" value="点击验证输入框中的值" onclick="test(mask.value)">
</center>
</body>
</html>
==============
//验证ip有效性
function validateip(ip) {
var result = false;
if (!(/^(/d{1,3})(/./d{1,3}){3}$/.test(ip))){
return false;
}
var reSpaceCheck = /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
var validip = ip.match(reSpaceCheck);
if (validip != null) {
result = true;
}
return result;
}
//验证子网掩码有效性
function validateNetMast(netmask) {
var result = false;
if (!(/^(/d{1,3})(/./d{1,3}){3}$/.test(netmask))){
return true;
}
var reSpaceCheck = /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
var validip = netmask.match(reSpaceCheck);
if (validip != null) {
var mask_binary = conversionBinary(netmask);
if(-1 != mask_binary.indexOf("01")){
result = true;
}
} else {
result = true;
}
return result;
}
* 函数名: validateMask
* 函数功能: 验证子网掩码的合法性
* 函数作者: 236F(fuwei236#gmail.com)
* 传入参数: 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]);
if ( ip1<0 || ip1>255 /* 每个域值范围0-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位二进制值
* 函数作者: 236F(fuwei236#gmail.com)
* 传入参数: ip:点分十进制的值(0~255),int类型的值,
* 主调函数: validateMask
* 调用函数: 无
* 返回值: ip对应的二进制值(如:传入255,返回11111111;传入1,返回00000001)
**/
function _checkIput_fomartIP(ip)
{
return (ip+256).toString(2).substring(1); //格式化输出(补零)
}
===================分隔符===================
测试页面test.htm
===================分隔符===================
<html>
<head>
<title></title>
<script src="validateMask.js"></script>
<script>
function test(MaskStr)
{
alert("IP地址为: "+ MaskStr + " 验证结果:" + validateMask(MaskStr));
}
</script>
</head>
<body>
<center>
<h1>子网掩码验证
</h1>
<input type="text" name="mask" id="mask" value="">
<input type="button" name="mytest" id="mytest" value="点击验证输入框中的值" onclick="test(mask.value)">
</center>
</body>
</html>
==============
//验证ip有效性
function validateip(ip) {
var result = false;
if (!(/^(/d{1,3})(/./d{1,3}){3}$/.test(ip))){
return false;
}
var reSpaceCheck = /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
var validip = ip.match(reSpaceCheck);
if (validip != null) {
result = true;
}
return result;
}
//验证子网掩码有效性
function validateNetMast(netmask) {
var result = false;
if (!(/^(/d{1,3})(/./d{1,3}){3}$/.test(netmask))){
return true;
}
var reSpaceCheck = /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
var validip = netmask.match(reSpaceCheck);
if (validip != null) {
var mask_binary = conversionBinary(netmask);
if(-1 != mask_binary.indexOf("01")){
result = true;
}
} else {
result = true;
}
return result;
}
相关文章推荐
- IP地址和子网掩码的验证
- 通过主机IP地址和子网掩码计算主机网络号
- 通过IP地址和子网掩码与运算计算相关地址
- 子网掩码!如何划分子网掩码,计算IP地址
- IP地址和子网掩码计算
- IP地址和子网掩码的作用是什么
- 知道IP地址和子网掩码。算出网络地址、广播地址、地址范围、可用的主机数。
- Python实现根据IP地址和子网掩码算出网段的方法
- IP地址和子网掩码的关系揭秘
- 根据ip地址和子网掩码计算网段地址和广播地址(原创)
- IP地址和子网掩码的作用是什么
- 华为面试题:识别有效的ip地址和子网掩码并分类 C语言源码
- 通过IP地址和子网掩码与运算计算相关地址
- 通过IP地址和子网掩码计算主机数
- 华为练习——识别有效的IP地址和子网掩码——中级
- 通过IP地址和子网掩码计算主机数
- 根据Ip地址与掩码 得出 子网地址与广播地址
- 写一个简单的python脚本来返回ip地址的掩码,子网个数等
- Ip地址和子网掩码和CIDR无间别域间路由
- ip地址和子网掩码的相与计算规则