2017-04-20 5 views
-1

Ich habe ein Szenario, das ist, dass ich ein virtuelles Netzwerk auf azurblau mit einem Adressbereich in CIDR-Block z. 10.0.0.0/24, dann muss ein Standard-Subnetz erzeugt werden, das einen Adressbereich in einem ähnlichen CIDR-Block aufweist, z. 10.1.0.0/16. Ich muss validieren, dass der Subnetz-Adressbereich im Adressbereich des virtuellen Netzwerks liegen sollte. Ich muss also überprüfen, dass 10.1.0.0/16 im Bereich von 10.0.0.0/24 liegt oder nicht?Validierung Subnetz-Adressbereich unter Vnet-Adressbereich durch C#

Ich suche es über das Internet, aber ich bekomme nur IP-Adresse Validierung unter CIDR-Block, aber was ich will zu validieren CIDR Block ist in Reichweite unter anderen CIDR-Block wie die Validierung auf azurblauen Portal beim Erstellen von virtuellen Netzwerken und Subnetzen. Jede Hilfe wäre willkommen. Dank

+0

Und was hast du bisher versucht? In welchem ​​Teil Ihres Codes ist der Fehler? – astaykov

+0

tatsächlich habe ich keinen Code gefunden, der cidr-Bereich unter cidr-Bereich validiert. Der Code, den ich finde Es validiert nur die IP im CIDR-Bereich, aber nicht den CIDR-Bereich im CIDR-Bereich. –

Antwort

0

aber was ich will, ist CIDR-Block ist in Reichweite unter anderen CIDR Block wie die Validierung auf azur Portal getan zu validieren, während virtuelle Netzwerke und Subnetze zu schaffen

Für CIDR Bereichsvergleich nahm ich an, dass Sie könnten die IPNetwork.Contains Methode aus IPNetwork nutzen wie folgt:

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)); 

Ausgabe

enter image description here

enter image description here

enter image description here

Zudem pro meinen Tests, diese Methode nur prüfen, ob der Subnetz-Adressbereich von Adressraum enthalten ist, ging ich davon aus, dass die Validierung für Subnet-Adresse überprüft und Adresse würde auf Azure-Seite behandelt werden.

+0

Danke Bruce Es funktioniert –