我想从一个或多个给定的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),然后删除网络,然后尝试将网络合并回更大的网络?
1条答案
按热度按时间bqujaahr1#
我找到了npm包“cidr-tools”。https://www.npmjs.com/package/cidr-tools这个NPM包有“合并”和“排除”功能