我正在编写一个获得/ 16并将其分解为不同子网(/ 24,23,27等)的脚本。我意识到我可能遇到冲突的子网,我正在寻找一种方法来检查它。我没有在ipcalc或netaddr中找到任何具体解决此问题的内容。谢谢你或你的帮助
def subnetting(self, cidrBlock, subnets):
networks = subnets
cidrblock = cidrBlock
assigned_subnets = []
ipnetwork = IPNetwork(cidrblock)
subnet_list = ipnetwork.subnet(int(subnets))
for subnet in subnet_list:
assigned_subnets.append(subnet)
return assigned_subnets
答案 0 :(得分:0)
要比较两个子网以查看它们是否发生冲突,您需要将最小的掩码应用于两者,以查看它们是否相等。如果他们是平等的,那么你就会发生冲突。
我将假设10.10.0.0/16
网络。如果您创建10.10.0.0/23
和10.10.1.0/24
,则可以通过将/23
(255.255.254.0
)的掩码应用于10.10.0.0
和10.10.1.0
来比较它们。 / p>
10.10.0.0 AND 255.255.254.0 = 10.10.0.0
10.10.1.0 AND 255.255.254.0 = 10.10.0.0
他们是平等的,所以他们重叠并发生冲突。
答案 1 :(得分:0)