Проверка, является ли POST [] переменная IP-адресом?

Я делаю сценарий, в который пользователь должен ввести допустимый IP-адрес. Как я могу проверить, что это - допустимый IP-адрес? (Не должен решать),

В основном $_POST['ip'] просто потребности быть между 0.0.0.0 и 255.255.255.255

5
задан Rob 14 June 2010 в 04:13
поделиться

3 ответа

Если вы используете PHP> = 5.2, используйте расширение фильтра:

filter_var($ip, FILTER_VALIDATE_IP)

Подробнее здесь и здесь .

9
ответ дан 13 December 2019 в 22:02
поделиться

Вы также можете попробовать preg_match (/ ^ (? :( ?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0] -9]?) \.) {3} (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) $ /, $ _POST ['ip']) .

Подробнее о preg_match () здесь

Также существует множество шаблонов для проверки. Выберите наиболее подходящий для себя.


Обновление: Также об использовании фильтров. Не на всех серверах уже установлен PHP версии 5.2.0 или выше. Таким образом, вы можете проверить версию перед их использованием, но, IMHO, наиболее логичными способами были бы фильтры или PCRE.

1
ответ дан 13 December 2019 в 22:02
поделиться
  1. Разделите строку «IP» на «.»
  2. Убедитесь, что в массиве четыре записи (октета).
  3. Подтвердите: 0 <= octet <= 255
  4. Если вы хотите стать более привлекательным, вы можете проверить, что IP-адрес не находится в частной сети, не является сетью многоадресной рассылки или не находится в зарезервированной Космос.

Редактировать: Используйте встроенный метод PHP, если он доступен! :)

0
ответ дан 13 December 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: