我在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}
欢呼声
答案 0 :(得分:25)
怎么样:
[bool]($newIP -as [ipaddress])
答案 1 :(得分:1)
这是一个更紧凑的:
\b(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b
答案 2 :(得分:0)
甚至更短
^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
答案 3 :(得分:0)
如果不是完整的IP
,这样可以正常工作$Name = "1.1" ; [bool]($Name -as [ipaddress] -and ($Name.ToCharArray() | ?{$_ -eq "."}).count -eq 3)
答案 4 :(得分:-2)
以下内容无效^(?:[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。