Regex для проверки IPv4-адреса

Категория: Регулярные выражения · Язык: JavaScript · Обновлено:

Проверить IPv4 можно регуляркой, которая ограничивает каждый октет диапазоном от 0 до 255. Для прикладного кода предпочтительнее стандартный сетевой парсер или проверенная библиотека, если она уже есть в проекте.

Регулярное выражение для IPv4

JavaScript
const ipv4Pattern = /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;
console.log(ipv4Pattern.test('192.168.1.10')); // true
console.log(ipv4Pattern.test('256.1.1.1')); // false
console.log(ipv4Pattern.test('192.168.1')); // false

Каждая группа принимает число от 0 до 255; шаблон требует четыре группы, разделённые тремя точками.

Что эта проверка не определяет

Форматно корректный IP может быть зарезервирован, недоступен или не относиться к нужной сети. Для сетевого доступа дополнительно проверьте диапазон, маршрут и политику приложения.

Проверка

Пример

Четыре октета

192.168.1.10

Октет не выше 255

256.1.1.1 отклоняется

Политика сети

Проверяется отдельно от синтаксиса

Проверяет ли это IPv6?

Нет, IPv6 имеет другой формат. Используйте парсер, который поддерживает оба семейства адресов.

Почему 127.0.0.1 проходит проверку?

Это корректный IPv4 синтаксически, но loopback-адрес. Проверка допустимости адреса зависит от задачи и должна выполняться отдельно.