IP地址和子網路遮罩的驗證

來源:互聯網
上載者:User

/**
* 函數名: 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;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.