2015-12-04 76 views
0

我正在寫一個腳本獲取/ 16並將其分解到不同的子網(/ 24,23,27等)。我意識到我可能遇到衝突的子網,並且正在尋找一種方法來檢查它。我沒有發現ipcalc或netaddr中具體解決此問題的任何內容。謝謝youf或你的幫助檢查子網衝突

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

要比較兩個子網,看看他們是否衝突,需要到最小面膜適用於這兩種,看看他們是平等的。如果他們是平等的,那麼你就有衝突。

我會承擔10.10.0.0/16網絡。如果您創建了10.10.0.0/2310.10.1.0/24,則可以通過將/23255.255.254.0)的掩碼應用於10.10.0.010.10.1.0來比較它們。

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 

他們是平等的,所以他們重疊和衝突。