最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IP與子網掩碼的關系圖文詳解

  發(fā)布時間:2023-06-12 17:03:36   作者:tulutulu   我要評論
這篇文章主要為大家介紹了了解IP地址扮演的角色有助于明白IP地址的含義乃至IP地址和子網掩碼的關系,需要的朋友可以參考下

IP地址

IP地址是一個32位的二進制數,通常被分割為4個“8位二進制數”。

IP地址分類

二進制表示

地址類型二進制地址范圍
A類地址00000000 00000000 00000000 00000001 - 01111111 11111111 11111111 11111111
B類地址10000000 00000000 00000000 00000000 - 10111111 11111111 11111111 11111111
C類地址11000000 00000000 00000000 00000000 - 11011111 11111111 11111111 11111111
D類地址11100000 00000000 00000000 00000000 - 11101111 11111111 11111111 11111111
E類地址11110000 00000000 00000000 00000000 - 11110111 11111111 11111111 11111111

十進制表示

地址類型十進制地址范圍特征
A類地址1.0.0.0 - 127.255.255.255第1個8位中的第1位始終為0
B類地址128.0.0.0 - 191.255.255.255第1個8位中的第1、2位始終為10
C類地址192.0.0.0 - 223.255.255.255第1個8位中的第1、2、3位始終為110
D類地址224.0.0.0 - 239.255.255.255第1個8位中的第1、2、3、4位始終為1110
E類地址240.0.0.0 - 247.255.255.255第1個8位中的第1、2、3、4、5位始終為11110

特殊:

D類地址:用于組播

E類地址:用于科研保留

注意:

A類地址 從1.0.0.0 到126.255.255.255 , 其中127.x.x.x段地址空間是被保留的回環(huán)地址

IP地址構成

IP地址 = 網絡地址 + 主機地址

地址類型網絡地址主機地址
A類地址前8位后24位
B類地址前16位后16位
C類地址前24位后8位

網絡地址

網絡地址(Network address)由ip和子網掩碼按位與得出,只有網絡地址相同的ip才在同一子網內

網絡地址是子網中最小的地址

計算方式:網絡地址 = IP & 子網掩碼

主機地址

主機(IP)地址即該網段中 主機的地址編號

廣播地址

廣播地址(Broadcast Address)是專門用于同時向網絡中所有工作站進行發(fā)送的一個地址

廣播地址是該子網主機地址全1的地址,即子網中最大的地址

計算方式:廣播地址 = (~子網掩碼) | 網絡地址

子網掩碼

子網掩碼 (Subnet mask)是一個32位的2進制數 ,它必須結合IP地址一起使用。

子網掩碼只有一個作用,就是將某個IP地址劃分成“網絡地址”和“主機地址”兩部分。

縮寫

有時候我們會看到192.168.1.123/24這樣的表示方法,其中/24就是子網掩碼255.255.255.0的縮寫

計算方式:二進制子網掩碼中1的個數

默認子網掩碼

網絡類型默認子網掩碼縮寫
A類地址255.0.0.0/8
B類地址255.255.0.0/16
C類地址255.255.255.0/24

子網容量計算

子網數

根據子網掩碼可劃分的最大子網數

計算方式:子網數 = 2^(實際子網掩碼縮寫 - 相應網絡類型默認子網掩碼縮寫)

最大主機數

計算方式:最大主機數 = 2^(主機地址的位數)

可用主機數

計算方式:可用主機數 = 最大主機數 - 2

因為一個子網中主機號全為0的是網絡地址,全為1的是廣播地址,所以要 -2

代碼計算示例

下面代碼采用C語言編寫(c11)

#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar bin1num(uchar num);
void main() {
	uchar IP[] = {192,168,1,53};	//IP地址
	uchar SubnetMask[] = {255,255,255,224};	//子網掩碼
	//網絡類型和默認子網掩碼縮寫
	uchar DefaultSubnetMaskAbbr;
	if(IP[0]<224) DefaultSubnetMaskAbbr = 24;	//C類地址
	if(IP[0]<192) DefaultSubnetMaskAbbr = 16;	//B類地址
	if(IP[0]<128) DefaultSubnetMaskAbbr = 8;	//A類地址
	//實際子網掩碼縮寫:二進制中1的個數
	uchar SubnetMaskAbbr = bin1num(SubnetMask[0])+bin1num(SubnetMask[1])+bin1num(SubnetMask[2])+bin1num(SubnetMask[3]);
	//網絡地址:IP & 子網掩碼
	uchar Network[] = {IP[0] & SubnetMask[0], IP[1] & SubnetMask[1], IP[2] & SubnetMask[2], IP[3] & SubnetMask[3]};
	//廣播地址:(~子網掩碼)|網絡地址
	uchar Broadcast[] = {(~SubnetMask[0])|Network[0], (~SubnetMask[1])|Network[1], (~SubnetMask[2])|Network[2], (~SubnetMask[3])|Network[3]};
	//子網數:2^(實際子網掩碼縮寫-默認子網掩碼縮寫)
	uint SubnetNum = 1;
	for(int i=0; i<SubnetMaskAbbr-DefaultSubnetMaskAbbr; i++) {
		SubnetNum *=2;
	}
	//最大主機數:2^(32-子網掩碼縮寫)
	uint HostNum = 1;
	for(int i=0; i<32-SubnetMaskAbbr; i++) {
		HostNum *=2;
	}
	/*打印結果*/
	printf("ip地址:%d.%d.%d.%d\n", IP[0], IP[1], IP[2], IP[3]);
	printf("子網掩碼:%d.%d.%d.%d\n", SubnetMask[0], SubnetMask[1], SubnetMask[2], SubnetMask[3]);
	if(DefaultSubnetMaskAbbr==8) printf("網絡類型:A類\n");
	if(DefaultSubnetMaskAbbr==16) printf("網絡類型:B類\n");
	if(DefaultSubnetMaskAbbr==24) printf("網絡類型:C類\n");
	printf("子網掩碼縮寫:%d\n", SubnetMaskAbbr);
	printf("網絡地址:%d.%d.%d.%d\n", Network[0], Network[1], Network[2], Network[3]);
	printf("廣播地址:%d.%d.%d.%d\n", Broadcast[0], Broadcast[1], Broadcast[2], Broadcast[3]);
	printf("子網數:%d\n", SubnetNum);
	printf("最大主機數:%d\n", HostNum);
	printf("可用主機數:%d\n", HostNum-2);
}
//計算8位二進制數1的個數(1必須從第一位開始,每個1必須相鄰)
uchar bin1num(uchar num) {
	uchar Divisor[] = {128,64,32,16,8,4,2,1};	//除數(8位)
	uchar Remainder = num;	 //余數
	uchar ret;	//結果
	for(ret=0; ret<10; ret++) {
		if(Remainder>0) Remainder = Remainder%Divisor[ret];
		else break;
	}
	return ret;
}

到此這篇關于IP與子網掩碼的關系圖文詳解的文章就介紹到這了,更多相關IP與子網掩碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

相關文章

最新評論

行唐县| 永州市| 余庆县| 文山县| 桑日县| 汶上县| 阿巴嘎旗| 班玛县| 班玛县| 闻喜县| 奉贤区| 大名县| 女性| 桓台县| 白河县| 福建省| 德江县| 汤阴县| 宁陵县| 商南县| 新源县| 博客| 西城区| 肇州县| 黄梅县| 甘洛县| 剑阁县| 攀枝花市| 株洲县| 淮滨县| 麻阳| 北京市| 福鼎市| 蒙城县| 朔州市| 东乡族自治县| 新宾| 遵义市| 乌鲁木齐市| 永安市| 浦北县|