Private/Get-PrefixTable.ps1
<# .SYNOPSIS Outputs a hash table of subnet masks and associated prefix .DESCRIPTION Outputs a hash table of subnet masks and associated prefix .EXAMPLE Get-PrefixTable Name Value ---- ----- 255.255.240.0 20 255.255.255.0 24 255.0.0.0 8 255.254.0.0 15 255.255.255.240 28 255.192.0.0 10 255.255.255.252 30 255.255.255.224 27 255.255.255.254 31 255.240.0.0 12 255.255.255.192 26 255.255.255.248 29 255.224.0.0 11 255.255.224.0 19 255.255.0.0 16 255.248.0.0 13 255.255.248.0 21 255.255.252.0 22 255.255.255.255 32 255.255.255.128 25 255.255.192.0 18 255.255.128.0 17 255.128.0.0 9 255.252.0.0 14 255.255.254.0 23 .LINK http://www.github.com/roberttoups/IPv4Toolbox #> function Get-PrefixTable { [CmdletBinding()] [OutputType([HashTable])] param() begin {} process { $HashTable = @{} for($Prefix = 8; $Prefix -le 32; $Prefix++) { $HashTable.Add(([System.Net.IPAddress]::Parse((ConvertTo-IPv4 -Integer ([System.Convert]::ToInt64(("1" * $Prefix + "0" * (32 - $Prefix)), 2))))).IPAddressToString, $Prefix) } $HashTable } end {} } |