其实无论作为前端还是后端开发,都会涉及到网络方面的知识,下面是总结的IP的常用计算方式
一,给你一个IP和掩码 如何计算出 它的可使用范围?
在此之前,我们先要知道 IP地址 32位。 IP网络位 + IP主机位 = IP (32位)
子网掩码不能单独存在,他必须结合IP地址一起使用。 子网掩码只有一个作用,就是将某个IP地址划分为网络地址和主机地址两部分
给你一个IP和掩码你知道有效IP的个数吗?
2的(32-掩码)次方-2 起始位网关,末位广播,所以掩码为30的有效IP就两个
那它的有效IP 起始IP是多少?末位IP是多少?
例如: 192.168.100.25/28
192.168.100.25/28
/28 = 255.255.255.240
11000000 10101000 01100100 00011001
11111111 11111111 11111111 11110000 [28位网络位,4位主机位]
& ------------------------------------------------
11000000 10101000 01100100 00010000 = 192.168.100.16 网关
广播位的主机位全为1 00011111 = 192.168.100.31/28就是广播位
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 =16个 .16是网关 .31是广播位
例如: 192.168.100.25/30
192.168.100.25/30
/30 = 255.255.255.252 30位网络位 11111100 = 252
11000000 10101000 01100100 00011001
11111111 11111111 11111111 11111100 [28位网络位,4位主机位]
& ----------------------------------
11000000 10101000 01100100 00011000 = 192.168.100.24 网关
广播位的主机位全为1 00011011 = 192.168.100.27/30就是广播位
(此时30网络位,2位主机位,主机位置1就是广播位 00011000 -> 00011011)
24 25 26 27 =4个 .24是网关 .27是广播位 可用IP 。25 和 .26
简单的24为掩码的地址范围很好确定,就是1~254 计算试试吧!
单个我们可以借助百度搜索,涉及整个IP段的使用开发时,你就必须要知道这个了!
开发需求解决:
例如:你要存储所有的IP地址,让客户购买, 一个IP是一条数据,这得存储多少表才够用?
二,如何判断两个IP是不是同一网段?
在实际项目中,我们通常会遇到这样的ip地址:
ip地址:192.168.1.1 子网掩码:255.255.255.0
ip地址:192.168.1.2 子网掩码:255.255.255.0
我们可以直接的判断,他们是同属于一个网段的ip地址。
那么对于下面这样的呢?
ip地址:192.168.1.1 子网掩码:255.255.255.0
ip地址:192.168.1.2 子网掩码:255.255.0.0
将ip地址与子网掩码做与运算,如果得出的结果一样,则这两个ip地址是同一个子网当中!
将ip地址192.168.1.1转换为二进制
将子网掩码255.255.255.0转换成二进制
11000000 10101000 00000001 00000001
11111111.11111111.11111111.00000000
& --------------------------------------------------------
11000000 10101000 00000001 00000000 转换成网络号就是:192.168.1.0
将ip地址192.168.1.2转换为二进制
将子网掩码255.255.0.0转换成二进制
11000000 10101000 00000001 00000010
11111111 11111111 00000000 00000000
& -----------------------------------------------------
11000000 10101000 00000000 00000000 转换成网络号就是:192.168.0.0
它们所以不是一个网段
|