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

Dat*_*ase 6 regex 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}
Run Code Online (Sandbox Code Playgroud)

干杯

mjo*_*nor 25

怎么样:

[bool]($newIP -as [ipaddress])
Run Code Online (Sandbox Code Playgroud)

  • 这不会一直有效.例如,如果您输入"10.10",它会说它是一个有效的IPAddress,因为它会将其转换为"10.0.0.10".有关详细信息,请参阅http://stackoverflow.com/questions/39988644/converting-a-string-to-an-ip-address (2认同)