Function IsBlank ([string]$InputObject) { if (($InputObject -eq "") -or ($InputObject -eq $Null)) { Return $True } else { Return $False } } Function IsInteger ([string]$InputObject) { if ($InputObject -match "^\d+$" ) { Return $True } else { Return $False } } Function IsFloat ([string]$InputObject) { if ($InputObject -match "^\d+\.\d+$") { Return $True } else { Return $False } } Function IsIPAddr ([string]$InputObject) { if ($InputObject -match "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") { Foreach ($Local:str in $InputObject.split(".")) { if (([int16]$str -gt 255) -or (($str -match "^0") -and ($str -ne "0"))) { #IP任意一段大於255或(以0開頭但不等於0)則無效 Return $False } } if ( [int16]$InputObject.split(".")[0] -eq 0 ) { #IP首位等於0則無效 Return $False } Return $True } else { #IP不符合四段3位數值格式則無效 Return $False } } Function IsNetmask([string]$InputObject) { if ($InputObject -match "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") { #將子網掩碼轉換爲二進制字符串,不足8位的在左側填0 $Mask = -join ($InputObject.Split('.') | ForEach-Object {[System.Convert]::ToString($_,2).PadLeft(8,'0')}) #判斷是否連續1開頭,連續0結尾 if (($Mask -match '^1+0+$') -and ($Mask.Length -le 32)) { Return $True } else { Return $False } } else { Return $False #不符合IP的四段3位數字格式 } }