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位数字格式
}
}
本文出自 “foolishfish” 博客,请务必保留此出处http://foolishfish.blog.51cto.com/3822001/1741530