如何使用代码(Node.js)从较大范围中减去子网

epggiuax  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(91)

我想从一个或多个给定的IP地址范围中取出小块。
如果我有例如在列表中的净192.168.0.0/16和有人想拿出净192.168.6.0/24,程序应该给我给予这些地址的列表:

192.168.0.0/22        (192.168.0.0 - 192.168.3.255)
192.168.4.0/23        (192.168.4.0 - 192.168.5.255)
192.168.7.0/24        (192.168.7.0 - 192.168.7.255)
192.168.8.0/21        (192.168.8.0 - 192.168.15.255)
192.168.16.0/20       (192.168.16.0 - 192.168.31.255)
192.168.32.0/19       (192.168.32.0 - 192.168.63.255)
192.168.64.0/18       (192.168.64.0 - 192.168.127.255)
192.168.128.0/17      (192.168.128.0 - 192.168.255.255)

有现成的图书馆吗?或者什么是好的方法
到目前为止,我只搜索了解决方案方法或库。也许在上面的例子中,你应该分裂大网格,直到它等于小网格的大小(/24),然后删除网络,然后尝试将网络合并回更大的网络?

bqujaahr

bqujaahr1#

我找到了npm包“cidr-tools”。https://www.npmjs.com/package/cidr-tools这个NPM包有“合并”和“排除”功能

相关问题