Как проверить, является ли вводимый пользователем IP-адрес действительным или нет?
Я хочу проверить, является ли введенный ввод действительным IP-адресом или нет. Я хотел бы получить конкретную функцию, которая поможет мне проверить ввод данных пользователями.
14
4 answers
filter_var($ip, FILTER_VALIDATE_IP)
67
Author: deceze, 2011-06-02 06:23:15
// Usually you'd get the value from $_POST or $_GET
$ip = "10.3.1.5";
if(!filter_var($ip, FILTER_VALIDATE_IP)) {
echo "Not a valid IP address!";
}
Вы можете изменить это, отфильтровав IP-адреса IPv4 и IPv6 и исключив частные и зарезервированные IP-адреса.
11
Author: chiborg, 2011-10-18 08:10:22
С помощью preg_match();
function checkIPAddress($ipAddress)
{
return preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', $ipAddress);
}
0
Author: Aniket Singh, 2015-08-03 09:45:32
В дополнение к ответу, данному deceze, используйте FILTER_FLAG_NO_PRIV_RANGE
и FILTER_FLAG_NO_RES_RANGE
для обработки частных и зарезервированных ip-адресов.
filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)
Ссылка, полученная из руководства http://php.net/manual/en/filter.filters.flags.php
0
Author: Akintunde-Rotimi, 2018-08-09 10:24:16