根據ip 掩碼格式位址段得到起始位址和結束位址

2021-07-16 08:05:15 字數 1739 閱讀 9718

需求:給出ip/掩碼的形式,求出起始位址和結束位址,例如6.61.252.0/24的起始位址為6.61.252.1,結束位址為6.61.252.254。

**:因為我是在頁面做處理,所以寫的是js**

1、計算起始位址

傳入的引數第乙個為ip,比如例子中的6.61.252.0。第二個引數為掩碼的ip格式,例子中給出的是整數形式,需要進行轉換,轉換**見下面

/**

* 計算子網起始位址(不包括網路位址)

* */

function getlowaddr(ip, netmask)

for (var i = 0; i < 4; i++)

iparray[i] = iparray[i] & netmaskarray[i];

}// 構造最小位址

for (var i = 0; i < 4; i++)

if ("" == lowaddr) else

}return lowaddr;

}

2、計算結束位址

/**

* 計算子網終止位址(不包括廣播位址)

*/function

gethighaddr

(ip,netmask)

var lowaddrarray = new

array();

for(var i = 0; i < 4; i++)

}lowaddrarray[3] = lowaddrarray[3] + number(hostnumber - 1);

//alert(lowaddrarray[3]);

if(lowaddrarray[3] > 255)}}

var highaddr = "";

for(var i = 0; i < 4; i++)

if("" == highaddr)else

}return highaddr;

}

3、獲取主機數

/**

* 獲取主機數

* * @param netmask

* @returns

*/function gethostnumber(netmask)

}return hostnumber;

}

4、將整數形式的掩碼轉換成ip格式

/**

* 轉換掩碼的格式

*/function

getnetmask

(inetmask)

//子網掩碼為1佔了幾個位元組

var num1 = parseint(inetmask / 8);

//子網掩碼的補位位數

var num2 = inetmask % 8;

vararray = new

array();

for(var i = 0; i < num1; i++)

for(var i = num1; i < 4; i++)

for(var i = 0; i < num2; num2--)

netmask = array[0] + "." + array[1] + "." + array[2] + "." + array[3];

return netmask;

}

IP位址和掩碼

在專案中遇到了 10.0.0.0 8 的網路位址,只知道8是網路掩碼,但具體表示什麼位址,都還給老師了 趕緊翻書複習一下 子網掩碼是乙個長32位的值,讓ip分組的接收方能夠將ip位址的網路id部分與主機id部分區分開來。32位的子網掩碼由1和0組成,其中的1表示ip位址的相應部分為網路位址或子網位址...

IP位址和子網掩碼

基於ip協議的網際網路,目前已經發展成為當今世界上規模最大 擁有使用者最多 資源最廣泛的通訊網路。ip協議也因此成為事實上的業界標準,以ip協議為基礎的網路已經成為通訊網路的主流。但對很多網迷們來說ip位址還只是乙個概念,在次我們對ip位址及子網掩碼做乙個簡單闡述,以給大家乙個清晰的概念。一 為什麼...

IP位址和子網掩碼

一 先導知識 一 二進位制和十進位制數轉換 記住 1111 1111 128 64 32 16 8 4 2 1 240 15 255 舉例 10100000 128 32 160 10011000 128 16 8 152 01000100 64 4 68 二 子網掩碼計算 記住 10000000 ...