Регулярное выражение которое проверяет валидный ip адрес

В данной статье мы рассмотрим пример простой программы, которая производит валидацию IP адреса с помощью регулярного выражения. Тестирование созданного класса мы будет производить средствами библиотеки TestNG.

Регулярное выражение для валидации IP адреса

Объяснение регулярного выражения:

Полностью это регулярное выражение означает буквально следующее: числа в интервале от 0 до 255 с последующей точкой («.») должны повторяться 4 раза, но в конце строки точки быть не должно. Корректными IP адресами являются все строки условного вида: 0-255.0-255.0-255.0-255 .

Корректные IP адреса

С точки зрения составленного регулярного выражения корректными IP адресами будут являться:

  • 1.1.1.1 , 255.255.255.255 , 192.168.1.1 ;
  • 10.10.1.1 , 132.254.111.10 , 26.10.2.10 ;
  • 127.0.0.1 .

Некорректные IP адреса

С точки зрения нашего регулярного выражения некорректными IP адресами будут являться:

Пользователь вводит агрумент к скрипту IP адрес, подскажите как при помощи регулярок проверить корректность ввода IP адреса?

5 ответов 5

если хватит проверки четырёх трёхзначных чисел через точку, без проверки на превышение 255 и валидности и соответствия "белым"-"серым" диапазонам.

Ещё можно сделать whois "$IP" , в русской локализации на невалидный адрес whois всегда возвращает:

это работает и для локальных адресов, и для доменных имён.

довольно корректное выражение для проверки ipv4-адресов:

чтобы пропускало и адреса, в последнем октете которых написан ноль (см. дискуссию в комментариях), надо переставить последний ? чуть левее:

  • -E — опция программы grep, включающая режим extended regexp. в данном случае используется лишь для того, чтобы не загромождать выражение обратными слэшами
  • -q — опция программы grep, благодаря которой программа ничего не запишет в stdout, а лишь вернёт код возврата (совпадение есть — вернёт 0, иначе — вернёт не ноль)
  • ^. $ — привязка к началу и концу строки
  • (. ) — группа
  • (. ) <3>— группа должна повториться ровно три раза
  • (выражение1|выражение2|. ) — должно совпасть или выражение1 или выражение2 или .
  • [. ] — любой из перечисленных символов («набор»)
  • [0-5] — любая из цифр от нуля до пяти
  • x? — символ x может встретиться ноль или один раз («символом» в данном случае может быть и группа (. ) и набор символов [. ]
  • . — символ «точка» (без обратного слэша точка является квантификатором, совпадающим с любым (одним) символом)
Читайте также  Разбор предложения по слогам

2. Написать регулярное выражение, которое проверяет, является ли указанный файл нужного типа (на выбор .com,.exe или .jpg,.png,.gif и т. д.). Написать регулярное выражение, является ли ссылка URL на некоторый файл, и это действительно ссылка на картинку (например, http://site.com/folder/1.png), а не на любой файл.

3. *Написать регулярное выражение, которое проверяет, является выведенное значение «белым» IP-адресом (5.255.255.5 подойдет, а 172.16.0.1 нет)

Ссылка на основную публикацию
Adblock
detector