Private/GetFirstNetworkAddress.ps1
function GetFirstNetworkAddress { [CmdletBinding(DefaultParameterSetName='Mask')] param( [ipaddress]$IPAddress, [Parameter(ParameterSetName='Mask')] [ValidateScript({$_ -in $(GetValidMask)})] [ipaddress]$Mask, [Parameter(ParameterSetName='MaskLength')] [ValidateRange(0,32)] [int]$MaskLength ) begin{ $firstAddressMask = [ipaddress]'0.0.0.1' } process{ $SNMask = switch ($PSCmdlet.ParameterSetName) { 'Mask' { $Mask } 'MaskLength' { $(GetValidMask)[$MaskLength] } } $FirstAddress = [ipaddress]((GetNetworkID @PSBoundParameters).Address -bor $firstAddressMask.Address) $FirstAddress } end{} } |