暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

IP地址段分解与合并

生有可恋 2022-04-10
5546

我们知道IP地址段可以写成 192.168.1.0-192.168.1.255 的形式,也可以写成 192.168.1.0/24 的形式。如果给定一个段 192.168.1.1-192.168.1.64,如何改写成掩码的形式?

之前通过归纳法推算过,30位掩码可以表示4个地址,24位掩码可以表示256个地址,25位有128个地址,26位64个地址,以此类推

  • 30    255.255.255.252

  • 29    255.255.255.248

  • 28    255.255.255.240

  • 27    255.255.255.224

  • 26    255.255.255.192

  • 25    255.255.255.128

一个IP地址段是可以转化为一系列的小的掩码段,最终 192.168.1.1-192.168.1.64 是可以表示为如下地址段:

地址段:192.168.1-192.168.1.64

分解表示:

  • 192.168.1.1/32

  • 192.168.1.2/31

  • 192.168.1.4/30

  • 192.168.1.8/29

  • 192.168.1.16/28

  • 192.168.1.32/27

  • 192.168.1.64/32

这个不用手算,实际上有人写了个命令行工具用来实现 IP 地址段的分解和合并。因为有些场合,比如部分防火墙路由配置中只认掩码形式,这时就需要将范围形式的地址段改写成掩码形式。

项目地址:

  • https://github.com/zhanhb/cidr-merger

工具是用 go 语言写的,在 Release 页面提供了 Windows 和 Linux 下的编译好的版本。这里我们以 Windows 版本的为例,讲解一下如何使用。

首先 cidr-merge 支持 IP 段分解为掩码形式:

    echo 192.168.1.1-192.168.1.64| cidr-merger-windows-amd64.exe -s

    如果将分解后的文件重定向到文件,我们试试是否可以合并分解的地址段:

      echo 192.168.1.1-192.168.1.64\
          | cidr-merger-windows-amd64.exe -s > ip-range.txt
      type ip-range.txt | cidr-merger-windows-amd64.exe -r

      我们尝试打乱顺序,看是否仍然可以正常合并。

      顺序打乱后,cidr-merge 仍然可以正常合并IP段。

      这里给出的例子只是简单的 C 类地址段,看起来手工也可以算出来。如果是一个大段,就会了解到这个工具的价值。比如:

      1.0.0.1-223.255.255.254

      换算后的结果如下:

      这是一款不可多得到的IP处理神器,以后遇到IP段和掩码之间的转换,再也不用担心不会换算了。

      文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论