

ip地址中的网络号,主机号
source link: https://blogread.cn/it/article/7253?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ip地址中的网络号,主机号
当前使用的IP地址有4个字节(32bit)组成,即IPV4编码方式。每个IP地址包括两部分:网络号和主机号。当分配给主机号的二进制位越多,则能标识的主机数就越多,相应地能标识的网络数就越少,反之同理。
ip地址中的网络号,主机号有什么作用?
打个很简单的比喻:网卡的MAC地址就像你身份证上的身份证号码,虽然是唯一的,但是寻址起来很麻烦;而IP地址就像你的家庭详细地址,楼上说的对:每个IP地址都是由两部分构成:网络号,主机号.其中,网络号标识某个网络,主机号标识在该网络上的一个特定的主机。这样就形成了一定的格式,正如地址写的是什么省,什么市,什么镇一样有层次感。这样通通信起来很容易定位。
如何计算网络号和主机号?
子网掩码的作用就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码与ip地址按位与,就是ip地址的网络号。如:
① IP地址 192.9.200.13
转换为二进制11000000000010011100100000001101
② 子网掩码255.255.255.0
转换为二进制11111111111111111111111100000000
③ 将两个二进制数做按位与(&)运算后得出的结果即为网络部分
11000000000010011100100000001101
& 11111111111111111111111100000000
————————————————————-
11000000000010011100100000000000
= 192 . 9 . 200 . 0
即网络号为192.9.200.0
④将子网掩码取反再与IP地址按位与(&)后得到的结果即为主机部分
11000000000010011100100000001101
& 00000000000000000000000011111111 — >已将掩码取反
————————————————————
00000000000000000000000000001101
= 0 . 0 . 0 . 13
即主机号为13(或者0.0.0.13)。
如何计算ip的二进制位?
按点分割数字,按每个数字算出二进制形式,然后拼接在一起。
如:128.11.3.31
按点分割后是
128 11 3 31
每位的二进制形式
10000000 00001011 00000011 00011111
二进制拼接
10000000000010110000001100011111
ps:算十进制数字转二进制数字小窍门
每8位二进制,各位从左到右对应的权值分别是 128,64,32,16, 8,4,2,1 。(即2的n-1次方,n是从右到左当前位的位数)
所以随便拿一个256以内的数给你化为二进制,都可以分解为权值相加。对应的权值的位值为1,其他位为0即可。比如137,
137=128+8+1,所以这几个权值对应的位应该是1,其他位为0,化为二进制即是:
1000 1001
ip地址分类
IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。
A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。
子网掩码
子网掩码除了可以使用255.255.255.0的这种表现形式外,还可以使用/30这种表现形式。如,nginx的配置文件中就可以使用这种形式定义网络。
斜线/后的数字就是子网掩码中1的个数。
建议继续学习:
扫一扫订阅我的微信号:IT技术博客大学习
Recommend
-
36
主机字节序和网络字节序 DaemonCoder | 2019-10-24 18:28:19 现代CPU计算时一次都能装载多个字节(如32位计算机一次装载4字节),多字节的数值在内存中高低位的排列方...
-
26
一、Docker跨主机通信Docker跨主机网络方案包括:docker原生的overlay和macvlan。第三方方案:常用的包括flannel、weave和calico。docker通过libnetwork以及CNM将上述各种方案与docker集成在一起。libnetwork是docker容器网络库,最核心的内容是其定义的ContainerN...
-
36
1.Macvlan简介在Macvlan出现之前,我们只能为一块以太网卡添加多个IP地址,却不能添加多个MAC地址,因为MAC地址正是通过其全球唯一性来标识一块以太网卡的,即便你使用了创建ethx:y这样的方式,你会发现所有这些“网卡”的MAC地址和ethx都是一样的,本质上,它们还是...
-
4
如果想隔离主机中进程的网络环境,可以使用network namespace(后面简称ns)来做。隔离方法很多种,本文介绍几种简单的可行方案。 实验环境准备 实验环境使用腾讯云上的两台cvm主机,两台机器在同一vpc同一子网下(underlay网络...
-
11
Linux:uint64_t主机字节序转网络字节序 - Ryan_naiquan字节序 #include <iostream> #include <arpa/inet.h> unsigned long long htonll(unsigned l...
-
5
32位数从主机字节顺序转换成网络字节顺序 - Ryan_naiquan#include <iostream> #include <winsock2.h> #pragma comment(lib,"ws2_32.lib") using namespace std; //unsigned long long htonll(unsigned long long val) //{ // return (((u...
-
5
在使用Docker部署应用时,Docker推荐的方式是将应用及其所依赖的服务(MySQL,Redis等)均使用Docker部署,并通过link或自定义网络相连接。但是,当应用所依赖的服务被安装在宿主机上时,我们需要让容器中的应用能够访问到部署在宿主机上的服务。本文将介绍实现...
-
10
网络号/主机号/网络地址/主机地址 – wei blog Skip to content 子网/网段/网络号 都是同一个概念,是否同一网络号(网段), 看子网掩码 对于255.25...
-
5
主机重启后网络概率性不通 2022-03-19 tech ...
-
7
Docker容器访问宿主机网络 2018-10-16 最近部署一套系统,使用nginx作反向代理,其中nginx是使用docker方式运行: $ docker run -d --name ngi...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK