Script: *check-subnet-mask.ps1* ======================== This PowerShell script checks the given subnet mask for validity. Parameters ---------- ```powershell PS> ./check-subnet-mask.ps1 [[-address] ] [] -address Specifies the subnet mask to check Required? false Position? 1 Default value Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` Example ------- ```powershell PS> ./check-subnet-mask.ps1 255.255.255.0 ✔️ subnet mask 255.255.255.0 is valid ``` Notes ----- Author: Markus Fleschutz | License: CC0 Related Links ------------- https://github.com/fleschutz/PowerShell Script Content -------------- ```powershell <# .SYNOPSIS Checks the given subnet mask for validity .DESCRIPTION This PowerShell script checks the given subnet mask for validity. .PARAMETER address Specifies the subnet mask to check .EXAMPLE PS> ./check-subnet-mask.ps1 255.255.255.0 ✔️ subnet mask 255.255.255.0 is valid .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param([string]$address = "") function IsSubNetMaskValid { param([string]$IP) $RegEx = "^(254|252|248|240|224|192|128).0.0.0$|^255.(254|252|248|240|224|192|128|0).0.0$|^255.255.(254|252|248|240|224|192|128|0).0$|^255.255.255.(255|254|252|248|240|224|192|128|0)$" if ($IP -match $RegEx) { return $true } else { return $false } } try { if ($address -eq "" ) { $address = read-host "Enter subnet mask to validate" } if (IsSubNetMaskValid $address) { "✔️ subnet mask $Address is valid" exit 0 # success } else { write-warning "Invalid subnet mask: $address" exit 1 } } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 } ``` *(generated by convert-ps2md.ps1 using the comment-based help of check-subnet-mask.ps1 as of 03/27/2024 17:36:25)*