需求:給出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 ...