Валидация IP адреса в input
Нужно чтобы в него можно было ввести только IP адрес в формате xxx.xxx.xxx.xxx .
Если поставить type=text , то можно ввести чего угодно. Как это сделать?
Отслеживать
19.1k 6 6 золотых знаков 30 30 серебряных знаков 44 44 бронзовых знака
задан 15 дек 2017 в 10:56
Олег Перевышин Олег Перевышин
77 9 9 бронзовых знаков
Ну вообще-то IP не обязан вводиться именно по этому шаблону. наберите в адресной строке 1089053800 и попадите на 64.233.164.104 (www.google.com). 64.233.164.104 = ((64*256+233)*256+164)*256+104 = 1089053800.
15 дек 2017 в 11:09
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вам надо использовать pattern аттрибут HTML5
Для IP можно использовать паттерн:
"^(([0-9]|[1-9][0-9]|1[0-9]|2[0-4][0-9]|25[0-5])\.)([0-9]|[1-9][0-9]|1[0-9]|2[0-4][0-9]|25[0-5])$"
|2[0-4][0-9]|25[0-5])\.)([0-9]|[1-9][0-9]|1[0-9]|2[0-4][0-9]|25[0-5])$">
Отслеживать
ответ дан 15 дек 2017 в 11:03
Дмитрий Полянин Дмитрий Полянин
13.6k 1 1 золотой знак 20 20 серебряных знаков 51 51 бронзовый знак
@Regent добавил
15 дек 2017 в 11:15
В принципе, если автору нужна валидация, а не маска, то вполне себе вариант, без лишнего JS.
15 дек 2017 в 11:19
Паттерн не позволяет ввести адрес с ведущими нулями в октетах, что в общем неправильно.
15 дек 2017 в 11:51
@Akina да, вижу, спасибо, поправил
15 дек 2017 в 11:55
@ДмитрийПолянин да не, на самом деле, вы сломали, а не поправили. Теперь можно вводить 333A333B333C333 , что неверно по двум пунктам: можно вводить больше 255 , вместо точки можно указать любой символ.
15 дек 2017 в 12:52
- javascript
- html
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Защита от дурака
«Защитой от дурака» называется комплекс мер по пресечению ввода неправильной информации в форме. Например, если в поле требуется ввести положительное число от 0 до 10, то следует проверить, чтобы пользователь не ввёл текст или число, которое не лежит в указанном диапазоне, т.е. число не должно быть меньше нуля и больше десяти.
Почему происходит ввод неправильной информации? Это в основном совершается по трём причинам.
- Пользователь ошибся случайно, например, невнимательно прочитал, что ему требуется указать.
- На веб-странице неоднозначно просят ввести данные, поэтому пользователю приходится гадать и делать предположение, что же в действительности от него хотят. При этом не всегда происходит совпадение мнений разработчика и пользователя.
- Есть ряд людей, которые воспринимают инструкции как вызов и стараются поступить наоборот. Такие пользователи рассуждают примерно так: «Ага, меня просят ввести число. А что будет, если я укажу буквы?». После чего задают явно неправильную информацию и смотрят, к чему это приведёт.
Следует понимать, что точные и правильные формулировки хотя и снижают вероятность возникновения ошибок, но никак не спасают от них. Только технические средства на стороне сервера позволяют получить требуемый результат и избежать ввода неправильной информации. Тем не менее, ревизия или, как её ещё называют, валидация на стороне клиента позволяет быстро проверить данные, вводимые пользователем, на корректность, без отправки формы на сервер. Таким образом экономится время пользователя и снижается нагрузка на сервер. С позиции юзабилити тоже имеются плюсы — пользователь сразу получает сообщение о том, какую информацию он указал неверно и может исправить свою ошибку.
Обязательное поле
Некоторые поля формы должны быть обязательно заполнены перед их отправкой на сервер. Это, к примеру, относится к форме регистрации, где требуется ввести логин и пароль. Для указания обязательных полей используется атрибут required , как показано в примере 1.
Пример 1. Атрибут required
HTML5 IE 10+ Cr Op Sa Fx
Обязательное поле Логин:
Пароль:
Обязательные поля должны быть заполнены перед отправкой формы, иначе форма на сервер не отправится и браузер выдаст об этом предупреждение. Вид сообщения зависит от браузера, например Chrome выводит всплывающую подсказку, как показано на рис. 1.

Рис. 1. Обязательное поле не заполнено
Корректность данных
Исходно имеется два поля, в котором вводимые пользователем данные проверяются автоматически. Это веб-адрес и адрес электронной почты. Браузер Chrome также проверяет на корректность поле с календарными данными, но только потому, что у него не предусмотрен интерфейс выбора календаря щелчком мыши. Для этих элементов характерны следующие правила.
- Веб-адрес ( ) должен содержать протокол (http://, https://, ftp://).
- Адрес электронной почты ( ) должен содержать буквы или цифры до символа @, после него, затем точку и домен первого уровня.
У браузеров несколько различается политика по проверке данных пользователя. К примеру, Opera подставляет протокол http:// перед введённым текстом автоматически, тогда как другие браузеры ждут его от пользователя. Chrome и Opera требуют, чтобы в почтовом адресе была точка, для Firefox она не обязательна.
В примере 2 показана форма с обязательными полями, в которой два поля проверяется браузером.
Пример 2. Корректность данных
HTML5 IE 10+ Cr Op Sa Fx
Корректность данных Заполните форму (все поля обязательны)
Имя:
Email:
Сайт:
Opera проверяет элемент формы только при наличии атрибута name.
Что происходит в Opera при вводе неверных данных показано на рис. 2.

Рис. 2. Предупреждение о неправильных данных
Шаблон ввода
Некоторые данные нельзя отнести к одному из видов элементов формы, поэтому для них приходится использовать текстовое поле. При этом их ввод происходит по определённому стандарту. Так, IP-адрес содержит четыре числа разделённых точкой (192.168.0.1), почтовый индекс России ограничен шестью цифрами (124007), телефон содержит код города и конкретное количество цифр часто разделяемых дефисом (391 555-341-42) и др. Браузеру необходимо указать шаблон ввода, чтобы он согласно нему проверял вводимые пользователем данные. Для этого используется атрибут pattern , а его значением выступает регулярное выражение. Некоторые типовые значения перечислены в табл. 1.
| Шаблон | Описание |
| ^[a-zA-Z]+$ | Любые латинские буквы. |
| ^[ 0-9]+$ | Любое количество цифр. |
| \d\.\d\.\d\.\d | IP-адрес. |
| [0-9] | Почтовый индекс. |
| \d+(,\d)? | Цена в формате 1,34 (разделитель запятая). |
| \d+(\.\d)? | Цена в формате 2.10 (разделитель точка). |
В примере 3 просят ввести шестнадцатеричное значение цвета (#ffcc00) и если оно не лежит в этом диапазоне, браузер выводит сообщение об ошибке.
Пример 3. Шаблон ввода
HTML5 IE 10+ Cr Op Sa Fx
Ввод цвета Введите шестнадцатеричное значение цвета (должно начинаться с #)
">
На рис. 3 показано предупреждение в браузере Chrome.

Рис. 3. Введённые данные не соответствуют шаблону
Отмена валидации
Валидация не всегда требуется для формы, к примеру, разработчик пожелает использовать универсальное решение на JavaScript и дублирующая проверка браузером ему уже ни к чему. В подобных случаях необходимо отключить встроенную валидацию. Для этого применяется атрибут novalidate тега . В примере 4 показано использование этого атрибута.
Пример 4. Отмена валидации
HTML5 IE 10+ Cr Op Sa Fx
Атрибут novalidate
Для аналогичной цели применяется и атрибут formnovalidate , который добавляется к кнопке для отправки формы, в данном случае к тегу . В этом случае форма из примера 4 будет иметь следующий вид.
Как отправить ip адрес методом пост?
Приветствую всех знатоков!
У меня следующая задача, пишу скрипт-журнал, способный сообщить сис. администратору о проблемах пользователей. Обычная локальная сеть, вебсервер + php + mysql.
Есть ссылка по которой заходят пользователи, и заполняют форму: поля ФИО и Проблема, отправляется методом POST в базу и сразу из нее выкатывается в табличку ниже на этой же странице, тем самым табличку вижу я и все пользователи, что дает им представление очередности.
Проблема в том, как бы еще передать конкретно IP-адрес компа с которого пишут. Для удобства так сказать.
- Вопрос задан более трёх лет назад
- 285 просмотров
IP Firewall для ваших веб-форм
Сегодня рады представить наш новый модуль IP Firewall, с помощью которого можно ограничить доступ к веб-форме по IP адресу пользователя.
Для того чтобы подключить этот модуль, необходимо перейти в нужную форму в раздел «Модули». Там вы найдете наш новый модуль IP Firewall:

Наведите на него курсор мыши и нажмите на кнопку «Добавить», после чего перед вами откроется окно с основными настройками модуля:

Здесь вам нужно выбрать тип проверки IP адреса:
- Запретить отправку формы с тем IP, который есть в списке (черный список)
- Разрешить отправку формы только с тем IP, который есть в списке (белый список)
Если вам нужно заблокировать отправку формы некоторыми пользователями и вы знаете их IP, то нужно выбирать тип проверки «Запретить отправку формы с тем IP, который есть в списке». Тип проверки «Разрешить отправку формы только с тем IP, который есть в списке» нужно выбирать в том случае, если вам, например, нужно провести опрос внутри компании. Тогда вы можете указать внешний IP вашей компании, через который все сотрудники выходят в интернет и только с этим IP можно будет отправить форму.
Далее вам нужно ввести сам список IP адресов. Есть два списка:
- Список IP адресов для этой формы
- Список IP адресов общий для всех форм
С первым списком думаю все понятно. Сюда нужно вводить те IP, который будут проверяться только в этой форме. А вот второй общий список используется для всех форм, где подключен модуль IP Firewall.
Если вам нужно настроить проверку по IP для нескольких форм с одинаковыми настройками, то чтобы не копировать список IP из формы в форму, можно воспользоваться общим списком IP. Добавив в одной из форм IP адрес в общий список, этот IP будет проверяться во всех формах, где подключен этот модуль.
Ну и в самом конце вам нужно ввести текст «Сообщения об ошибке», которое будет выводиться пользователю, если сработает защита по IP.
Вот такой вот простой модуль, который призван увеличить безопасность ваших веб-форм.
Делитесь в комментариях, возникала ли у вас необходимость в таком модуле или нет.
- Как спасти сайт от спам-ботов?
- Как выбрать CRM для бизнеса: KeyCRM — лучшее решение для украинских предпринимателей
- Онлайн-калькулятор для сайта. Что это и как его создать
- Достаточно ли эффективны бесплатные рассылки: краткий обзор сервисов
- Интеграция FormDesigner + amoCRM + WIX
- История успеха Guangzhou Transit Service. Как вырасти с 30 заказов в день до 700 за 3 года