根據rfc950定義,子網掩碼是乙個32位的2進製數, 其對應網路位址的所有位都置為1,對應於主機位址的所有位都置為0。
子網掩碼的設定必須遵循一定的規則。與二進位制ip位址相同,子網掩碼由1和0組成,且1和0分別連續。子網掩碼的長度也是32位,左邊是網路位,用二進位制數字「1」表示,1的數目等於網路位的長度;右邊是主機位,用二進位制數字「0」表示,0的數目等於主機位的長度。這樣做的目的是為了讓掩碼與ip位址做按位與運算時用0遮住原主機數,而不改變原網路段數字,而且很容易通過0的位數確定子網的主機數(2的主機位數次方-2,因為主機號全為1時表示該網路廣播位址,全為0時表示該網路的網路號,這是兩個特殊位址)。通過子網掩碼,才能表明一台主機所在的子網與其他子網的關係,使網路正常工作。
如果我們必須設定我們的網路,我們就必須確定我們的網路掩碼是多少。下表列出a,b,c類位址的網路掩碼:
class lowest highest netmask
a 0.0.0.0 127.255.255.255 255.0.0.0
b 128.0.0.0 191.255.255.255 255.255.0.0
c 192.0.0.0 223.255.255.255 255.255.255.0
通過計算機的子網掩碼判斷兩台計算機是否屬於同一網段的方法是,將計算機十進位制的ip位址和子網掩碼轉換為二進位制的形式,然後進行二進位制「與」(and)計算(全1則得1,不全1則得0),如果得出的結果是相同的,那麼這兩台計算機就屬於同一網段。 [4] 類別
子網掩碼的二進位制數值
子網掩碼的十進位制數值
a11111111 00000000 00000000 00000000
255.0.0.0
b11111111 11111111 00000000 00000000
255.255.0.0
c11111111 11111111 11111111 00000000
255.255.255.0
子網掩碼一定是配合ip位址來使用的。對於常用網路a、 b、c 類ip位址其預設子網掩碼的二進位制與十進位制對應關係如表1所示。子網掩碼工作過程是:將32位的子網掩碼與ip位址進行二進位制形式的按位邏輯「與」運算得到的便是網路位址,將子網掩碼二進位制按位取反,然後ip位址進行二進位制的邏輯「與」(and)運算,得到的就是主機位址。如:192.168.10.10 and 255.255.255.0,結果為192.168.10.0,其表達的含義為:該ip位址屬於 192.168.10.0這個網路,其主機號為10,即這個網路中編號為10的主機。 [3]
first = (unsigned char )my_ip;//first欄位為ip位址前八個位元組
if((first&0x80) == 0)//0x80=1000 0000
if((first&0xc0) == 0x80)//0xc0=12-0=1100 0000
if((first&0xe0) == 0xc0)//0xe0=14-0=1110 0000
if((first&0xf0) == 0xe0)//0xf0=15-0=1111 0000
if((first&0xf0) == 0xf0)//
printf("%x\n",my_ip);
return 0;
}
IP和子網掩碼
是由四段數字組成,在此,我們先來了解一下3類常用的 a類ip段 0.0.0.0 到127.255.255.255 b類ip段 128.0.0.0 到191.255.255.255 c類ip段 192.0.0.0 到223.255.255.255 預設分配的子網掩碼每段只有255或0 類的預設子網掩碼...
IP和子網掩碼詳解
乙個適合上班群體的 www.xiabanl.com 大家支援阿,俺做的,嘿嘿 我們都知道,ip是由四段數字組成,在此,我們先來了解一下3類常用的ip a類ip段 0.0.0.0 到127.255.255.255 0段和127段不使用 b類ip段 128.0.0.0 到191.255.255.255 ...
IP位址和子網掩碼
基於ip協議的網際網路,目前已經發展成為當今世界上規模最大 擁有使用者最多 資源最廣泛的通訊網路。ip協議也因此成為事實上的業界標準,以ip協議為基礎的網路已經成為通訊網路的主流。但對很多網迷們來說ip位址還只是乙個概念,在次我們對ip位址及子網掩碼做乙個簡單闡述,以給大家乙個清晰的概念。一 為什麼...