@stepagrus

Как сделать валидацию ip адреса и порта с помощью регулярного выражения?

Задача: нужно проверить, корректны ли введённые ip адрес и порт в формате "ip:port"

Пример: 192.168.54.25:42168

Готового шаблона поиском пока не обнаружил. Может быть у кого лежит в закромах? )

P.S. ip должен находиться в пределах 0.0.0.0 - 255.255.255.255
порт от 1 до 65535
  • Вопрос задан
  • 7534 просмотра
Решения вопроса 3
DevMan
@DevMan
/\d+\.\d+\.\d+\.\d+:\d+/ - в простейшем случае (валидация только формата).

если нужна и проверка корректности данных (например, фейл на адресе 123.456.789.100), то:
/^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5]):((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([0-5]{0,5})|([0-9]{1,4}))$/
https://regex101.com/r/2xAnw4/1
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Чисто синтаксически - как-то так. Но сюда попадёт и 0.0.0.0 и 255.255.255.255
^(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){3}(?::(?:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
^
(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]?)
(\:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?
$

Разбил группы по строчкам для удобства чтения.

https://regex101.com/r/Wod4Zr/1

6e107600e8c5433da056d64c49c6aa8b.jpg
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы