其实无论作为前端还是后端开发,都会涉及到网络方面的知识,下面是总结的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 [30位网络位,2位主机位]
& ----------------------------------
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    

它们所以不是一个网段

三,计算有效IP的个数

在上面讲过,如果不知道网关,怎么样计算网关,以及有效IP。
实际开发中 知道网关和子网掩码计算可用IP的情况更多。
假如。192.168.100.0/29 是网关

那么它的IP:就是 8个,一个for 循环解决

100.0 网络
100.1 可用
100.2 可用
100.3 可用
100.4 可用
100.5 可用
100.6 可用
100.7 广播

所写均为自己的笔记,因为懒得记忆

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐