计算机网络基础知识:IP地址
2019-01-27 本文已影响5人
Java分布式架构实战
TCP/IP协议族的网络层中的IP地址用于主机与主机,主机与路由器,路由器与路由器之间通信时的标识,IPv4地址由4字节32位来表示,其中分为两段,即网络段与主机段。网络段用于标识不同的网络分类,主机段用于标识局域网LAN中的主机节点。比如192.168.0.1/24, 其中的/24表示32位中的前24位代表网络段,网络段之后的位全为0(192.168.0.0)代表尚未初始化的地址,全1(192.168.255.255)代表广播地址。因此不同内网划分方法中可容纳的IP个数为2的n次方-2, 其中n为主机段的位数。
10.*:前8位是网络号,后24位用来表示主机号,一共是2^24=16777216个地址
172.16--172.31.:前12位是网络号,一共是2^20=1048579个地址
192.168.*:前16位是网络号,共65536个地址
包含在这个范围中的,都称为私有IP,其余的全是公网IP
一般子网中会有很多路由器,比如家庭网络中的路由器通过WAN口与网络提供商的线路链接,此路由器会加入网络提供商的内网,并获取一个网络提供商内部的IP,然后通过NAT技术与外部主机通过。此路由器下会再挂其它主机节点。一般使用192.168.0.1做为路由器的子网IP。其它主机连接到路由器时,路由器会通过DHCP为其分配IP地址,比如IP192.168.0.110, 子网掩码255.255.255.0, 将IP与子网掩码按位与即可获取到网络号,IP中除去网络号后的地址即为主机号。
比如在MySQL中使用inet_aton将字符串格式IP转换为整数:
select inet_aton('192.168.0.110'), inet_aton('255.255.255.0')
MySQL inet_aton
inet_aton('192.168.0.110') & inet_aton('255.255.255.0') = 3232235520 (十六进制表示:c0a80000)
select inet_ntoa(3232235520);='192.168.0.0'
计算机网络架构