有個比較簡單的演算法,/28掩碼,掩碼的最後一位對應數字是16,既0和16的倍數就是網段地址,如0,16,32,48等等,倍數減1的是廣播地址,如15,31,47等等。在這些範圍內的就是可用地址。至於有多少個子網,傳統演算法是拋棄起始網段和結束網段,取中間的網段個數,支持cidr的話都是可用網段。一般可以看子網掩碼向最後一個點分位後變長了幾位,如/27,變長3位,3位二進位1轉十進位是8,就是有8個子網。/28是變長4位,對應十進位16,就是16個子網。


IP和掩碼進行32位的二進位與運算,得到的地址就是該IP的網路地址。與運算的特點是:全一才為一,有零就是零。

IP的二進位: 11000000 10101000 00001101 10101010

掩碼的二進位: 11111111 11111111 11111111 11110000

與運算結果: 11000000 10101000 00001101 10100000

結果轉換為十進位:192.168.13.160

該IP的網路地址是192.168.13.160


IP地址由網路前綴+主機號組成,斜線後邊的數字就是網路前綴的位數。

網路地址可用「IP地址中網路前綴對應的位不變,主機號對應的位是全0」得出。

如192.168.13.170/28,前三個位元組加起來是24位,而網路前綴是28位,意味著第四個位元組的前四位也是網路前綴。我們要把第四個位元組拆開,170D=10101010B。取前28位,後四位為0

那麼,網路地址為:192.168.13.10100000,也就是192.168.13.160。


通過掩碼長度來速算IP地址數量

  • 一個網段里中有多少IP地址? = 2^(32-掩碼長度),本例中2^(32-28) = 2^4 = 16,即/28掩碼的網段有16個IP地址;接下來很容易定位到這個網段是192.168.13.160/28,網路號就是192.168.13.160
  • 拓展一下,一個掩碼為/m的網段中包含多少掩碼為/n的子網?= 2^(n-m),比如計算一個/18網段中包含多少個/24, 2^(24-18) = 2^6 = 64,即一個/18的網段中包含64個/24的子網。

希望對你有用。


170的二進位是10101010,掩碼長度是28,ip每段8。所以劃至1010 | 1010。網路地址是192.168.13.160


28位掩碼為:255.255.255.240

則總的包涵256-240=16 個ip段也就是每16個化為一個網段

用可變長子網掩碼直接找16的倍數最小的就是160,一下個是176,170恰好在這個網段中,

所以該ip的網路地址(開始位)就是:192.168.13.160

廣播地址(結束位)是:192.168.13.175 (廣播地址等於下一次的網路地址減1)

可用地址:192.168.13.161~174


推薦閱讀:
相关文章