2017-04-20 101 views
-1

我有一個場景,就是我在azure上創建了一個具有CIDR塊中地址範圍的虛擬網絡,例如, 10.0.0.0/24,則需要創建具有類似CIDR塊中的地址範圍的默認子網,例如10.1.0.0/16。我需要驗證子網地址範圍應駐留在虛擬網絡地址範圍意味着我需要驗證10.1.0.0/16是否在10.0.0.0/24的範圍內?驗證子網地址範圍在vnet地址範圍下通過c#

我搜索它在互聯網上,但我下CIDR塊只得到IP地址驗證,但我想要的是驗證CIDR塊是範圍在其他CIDR塊像蔚藍的門戶網站完成在創建虛擬網絡和子網的驗證。任何幫助,將不勝感激。由於

+0

到目前爲止你有什麼嘗試?你的代碼中哪部分是錯誤? – astaykov

+0

實際上我沒有找到任何驗證cidr範圍下的cidr範圍的代碼。我發現它的代碼只驗證CIDR範圍內的IP,而不驗證CIDR範圍內的CIDR範圍。 –

回答

0

,但我想要的是驗證CIDR塊是在其他CIDR塊像蔚藍的門戶網站做了驗證範圍,同時創建虛擬網絡和子網

對於CIDR範圍比較,我認爲你可以從IPNetwork充分利用IPNetwork.Contains方法如下:

IPNetwork addressSpaceRange = IPNetwork.Parse("172.20.0.0/24"); 
IPNetwork subnetAddressRange = IPNetwork.Parse("172.20.0.0/25"); 

Console.WriteLine($"Address space [{addressSpaceRange.ToString()}]:"); 
Console.WriteLine($"FirstUsable address:{addressSpaceRange.FirstUsable}"); 
Console.WriteLine($"LastUsable address:{addressSpaceRange.LastUsable}\r\n"); 

Console.WriteLine($"Subnet address range [{subnetAddressRange.ToString()}]:"); 
Console.WriteLine($"FirstUsable address:{subnetAddressRange.FirstUsable}"); 
Console.WriteLine($"LastUsable address:{subnetAddressRange.LastUsable}\r\n"); 

Console.WriteLine("addressSpaceRange contains subnetAddressRange:" + IPNetwork.Contains(addressSpaceRange, subnetAddressRange)); 

輸出

enter image description here

enter image description here

enter image description here

而且,根據我的測試,這種方法只檢查子網地址範圍是否是由地址空間包含的,我假設驗證的子網地址和地址檢查將在Azure方面處理。

+0

謝謝布魯斯它的工作原理 –