欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IP與子網(wǎng)掩碼的關(guān)系圖文詳解

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

IP地址

IP地址是一個32位的二進(jìn)制數(shù),通常被分割為4個“8位二進(jìn)制數(shù)”。

IP地址分類

二進(jìn)制表示

地址類型二進(jìn)制地址范圍
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

十進(jìn)制表示

地址類型十進(jìn)制地址范圍特征
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地址構(gòu)成

IP地址 = 網(wǎng)絡(luò)地址 + 主機地址

地址類型網(wǎng)絡(luò)地址主機地址
A類地址前8位后24位
B類地址前16位后16位
C類地址前24位后8位

網(wǎng)絡(luò)地址

網(wǎng)絡(luò)地址(Network address)由ip和子網(wǎng)掩碼按位與得出,只有網(wǎng)絡(luò)地址相同的ip才在同一子網(wǎng)內(nèi)

網(wǎng)絡(luò)地址是子網(wǎng)中最小的地址

計算方式:網(wǎng)絡(luò)地址 = IP & 子網(wǎng)掩碼

主機地址

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

廣播地址

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

廣播地址是該子網(wǎng)主機地址全1的地址,即子網(wǎng)中最大的地址

計算方式:廣播地址 = (~子網(wǎng)掩碼) | 網(wǎng)絡(luò)地址

子網(wǎng)掩碼

子網(wǎng)掩碼 (Subnet mask)是一個32位的2進(jìn)制數(shù) ,它必須結(jié)合IP地址一起使用。

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

縮寫

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

計算方式:二進(jìn)制子網(wǎng)掩碼中1的個數(shù)

默認(rèn)子網(wǎng)掩碼

網(wǎng)絡(luò)類型默認(rèn)子網(wǎng)掩碼縮寫
A類地址255.0.0.0/8
B類地址255.255.0.0/16
C類地址255.255.255.0/24

子網(wǎng)容量計算

子網(wǎng)數(shù)

根據(jù)子網(wǎng)掩碼可劃分的最大子網(wǎng)數(shù)

計算方式:子網(wǎng)數(shù) = 2^(實際子網(wǎng)掩碼縮寫 - 相應(yīng)網(wǎng)絡(luò)類型默認(rèn)子網(wǎng)掩碼縮寫)

最大主機數(shù)

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

可用主機數(shù)

計算方式:可用主機數(shù) = 最大主機數(shù) - 2

因為一個子網(wǎng)中主機號全為0的是網(wǎng)絡(luò)地址,全為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};	//子網(wǎng)掩碼
	//網(wǎng)絡(luò)類型和默認(rèn)子網(wǎng)掩碼縮寫
	uchar DefaultSubnetMaskAbbr;
	if(IP[0]<224) DefaultSubnetMaskAbbr = 24;	//C類地址
	if(IP[0]<192) DefaultSubnetMaskAbbr = 16;	//B類地址
	if(IP[0]<128) DefaultSubnetMaskAbbr = 8;	//A類地址
	//實際子網(wǎng)掩碼縮寫:二進(jìn)制中1的個數(shù)
	uchar SubnetMaskAbbr = bin1num(SubnetMask[0])+bin1num(SubnetMask[1])+bin1num(SubnetMask[2])+bin1num(SubnetMask[3]);
	//網(wǎng)絡(luò)地址:IP & 子網(wǎng)掩碼
	uchar Network[] = {IP[0] & SubnetMask[0], IP[1] & SubnetMask[1], IP[2] & SubnetMask[2], IP[3] & SubnetMask[3]};
	//廣播地址:(~子網(wǎng)掩碼)|網(wǎng)絡(luò)地址
	uchar Broadcast[] = {(~SubnetMask[0])|Network[0], (~SubnetMask[1])|Network[1], (~SubnetMask[2])|Network[2], (~SubnetMask[3])|Network[3]};
	//子網(wǎng)數(shù):2^(實際子網(wǎng)掩碼縮寫-默認(rèn)子網(wǎng)掩碼縮寫)
	uint SubnetNum = 1;
	for(int i=0; i<SubnetMaskAbbr-DefaultSubnetMaskAbbr; i++) {
		SubnetNum *=2;
	}
	//最大主機數(shù):2^(32-子網(wǎng)掩碼縮寫)
	uint HostNum = 1;
	for(int i=0; i<32-SubnetMaskAbbr; i++) {
		HostNum *=2;
	}
	/*打印結(jié)果*/
	printf("ip地址:%d.%d.%d.%d\n", IP[0], IP[1], IP[2], IP[3]);
	printf("子網(wǎng)掩碼:%d.%d.%d.%d\n", SubnetMask[0], SubnetMask[1], SubnetMask[2], SubnetMask[3]);
	if(DefaultSubnetMaskAbbr==8) printf("網(wǎng)絡(luò)類型:A類\n");
	if(DefaultSubnetMaskAbbr==16) printf("網(wǎng)絡(luò)類型:B類\n");
	if(DefaultSubnetMaskAbbr==24) printf("網(wǎng)絡(luò)類型:C類\n");
	printf("子網(wǎng)掩碼縮寫:%d\n", SubnetMaskAbbr);
	printf("網(wǎng)絡(luò)地址:%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("子網(wǎng)數(shù):%d\n", SubnetNum);
	printf("最大主機數(shù):%d\n", HostNum);
	printf("可用主機數(shù):%d\n", HostNum-2);
}
//計算8位二進(jìn)制數(shù)1的個數(shù)(1必須從第一位開始,每個1必須相鄰)
uchar bin1num(uchar num) {
	uchar Divisor[] = {128,64,32,16,8,4,2,1};	//除數(shù)(8位)
	uchar Remainder = num;	 //余數(shù)
	uchar ret;	//結(jié)果
	for(ret=0; ret<10; ret++) {
		if(Remainder>0) Remainder = Remainder%Divisor[ret];
		else break;
	}
	return ret;
}

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

相關(guān)文章

最新評論