используя регулярное выражение для проверки IP-адреса в Powershell? - PullRequest
6 голосов
/ 05 мая 2011

У меня есть этот код в 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}

ура

Ответы [ 5 ]

25 голосов
/ 05 мая 2011

Как насчет:

[bool]($newIP -as [ipaddress])
1 голос
/ 05 мая 2011

Вот более компактный:

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

0 голосов
/ 11 июня 2018

Работает нормально и выдает ошибки, если не полный IP

$Name = "1.1" ; [bool]($Name -as [ipaddress] -and ($Name.ToCharArray() | ?{$_ -eq "."}).count -eq 3) 
0 голосов
/ 20 января 2017

Следующее не будет работать ^ (?: [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.

0 голосов
/ 16 марта 2015

или даже короче

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...