为了使用PowerShell验证IP地址,我们可以使用如下所示的几种方法。
使用RegEx方法。
使用类型转换方法。
在此方法中,我们使用System.Net方法类IPAddress来验证IP地址。
[ipaddress]$IP = "192.168.0.1"
上面的一个是有效的。让我们检查一下$IP存储在什么位置。
PS C:\> $IP Address : 16820416 AddressFamily : InterNetwork ScopeId : IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : False IsIPv6Teredo : False IsIPv4MappedToIPv6 : False IPAddressToString : 192.168.0.1
上面的是Ipv4,此方法也适用于IPv6。请参见下面的示例。
PS C:\> [ipaddress]"2001:0db8:85a3:0000:0000:8a2e:0370:7334" Address : AddressFamily : InterNetworkV6 ScopeId : 0 IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : False IsIPv6Teredo : False IsIPv4MappedToIPv6 : False IPAddressToString : 2001:db8:85a3::8a2e:370:7334
您可以在两个地址中注意到AddressFamily属性的差异。
如果我们输入了错误的IP地址范围。
PS C:\> [ipaddress]"192.168.0.256" Cannot convert value "192.168.0.256" 输入 "System.Net.IPAddress". Error: "An invalid IP address was specified." At line:1 char:1 + [ipaddress]"192.168.0.256" + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [], RuntimeException + FullyQualifiedErrorId : InvalidCastParseTargetInvocation
它拒绝IP输入。您也可以在功能上使用此方法来验证IP。