繁体   English   中英

使用常规表达式验证Powershell中的IP地址?

[英]using Regular exprestion to validate IP Address in Powershell?

我在PowerShell中有这个代码,它不起作用! 任何帮助?

我只是需要它来确保字符串是一个工作IP而不是999.999.999.999或普通字符串

只是一个IP [0 .... 255]。[0 .... 255]。[0 .... 255]。[0 .... 255]

if ($newIP -match "(\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b)") { $x = $True}

干杯

怎么样:

[bool]($newIP -as [ipaddress])

这是一个更紧凑的:

\\b(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\b

甚至更短

^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$

这工作正常,如果不是完整的IP错误

$Name = "1.1" ; [bool]($Name -as [ipaddress] -and ($Name.ToCharArray() | ?{$_ -eq "."}).count -eq 3) 

以下内容不起作用^(?:[0-9] {1,3}。){3} [0-9] {1,3} $例如,需要匹配来自IP的最后一个八位字节的部分地址[0-9] {1,3} - 这不会仅匹配0到255区间内的数字。最好的方法是检查单个八位位组到250到255; 240至249; 100至199; 10到99; 和0到99。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM