Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как проверить или значение является IP адресом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Jeick9
Отправлено: 27 Мая, 2015 - 20:41:13
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Здравствуйте форумчане.
Подскажите пожалуйста как сделать условие на значения IP-адреса?
То есть, я принимаю IP с формы и мне надо проверить или данное значение является IP-адресом. Как именно проверить что значение состоит из чисел и 3-х точек?
 
 Top
Ch_chov
Отправлено: 27 Мая, 2015 - 21:14:31
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




 
 Top
GoDr
Отправлено: 28 Мая, 2015 - 08:44:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Немного по проще Улыбка
PHP:
скопировать код в буфер обмена
  1. $good = "124.43.44.230";
  2. $bad1 = "320.23.434.23";
  3. $bad2 = "32.023.AA.23";
  4.  
  5. $result1 = ip2long($good);
  6. $result2 = ip2long($bad1);
  7. $result3 = ip2long($bad2);
  8.  
  9. $result = array();
  10.  
  11. if($result1){
  12.     $result[] = 'IP-адрес ' . $good . ' правильный';
  13. }else{
  14.     $result[] = 'IP-адрес ' . $good . ' неправильный';
  15. }
  16. if($result2){
  17.     $result[] = 'IP-адрес ' . $bad1 . ' правильный';
  18. }else{
  19.     $result[] = 'IP-адрес ' . $bad1 . ' неправильный';
  20. }
  21. if($result3){
  22.     $result[] = 'IP-адрес ' . $bad2 . ' правильный';
  23. }else{
  24.     $result[] = 'IP-адрес ' . $bad2 . ' неправильный';
  25. }
  26.  
  27. echo implode('<br>', $result);

(Добавление)
даже можно чуть извратиться Радость
PHP:
скопировать код в буфер обмена
  1. /**
  2.  * Возвращает IPv4 адрес, проверяет корректность
  3.  *
  4.  * @param string $ip : IPv4 Интернет адрес с точками
  5.  * @param bool $value : определяет в каком формате возвращать данные
  6.  *                    - false (по умолчанию) : int|false
  7.  *                    - true : string
  8.  *
  9.  * @return int|false|string
  10.  *
  11.  * @example:
  12.  *         $a = MyIp2Long('195.33.44.55');
  13.  *         $b = MyIp2Long('195.33.44.55', true);
  14.  *         echo MyIp2Long('195.33.44.55', 1);
  15.  */
  16. function MyIp2Long($ip, $value = false)
  17. {
  18.     // конвертируем IP-адрес
  19.     $_result = ip2long($ip);
  20.  
  21.     // если нужно вывести строкой результат
  22.     if ($value) {
  23.  
  24.         if ($_result) {// если адрес корректный
  25.  
  26.             $_result = 'IP-адрес ' . $ip . ' правильный';
  27.  
  28.         } else {// если адрес не корректный
  29.  
  30.             $_result = 'IP-адрес ' . $ip . ' неправильный';
  31.         }
  32.     }
  33.  
  34.     // возвращаем результат
  35.     return $_result;
  36. }

(Отредактировано автором: 28 Мая, 2015 - 08:45:02)



-----
Система управления веб-содержимым Lotos CMS
 
 Top
LIME
Отправлено: 28 Мая, 2015 - 09:13:21
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




GoDr и чем это проще?
абсолютно тот же способ только для того чтобы изменить сообщение придется ф-цию новую писать))
уж лучше тогда шаблон передавать
для sprintf
текущий можно установить как шаблон по умолчанию
хотя это тоже ещето извращение
каждая фция должна решать одну задачу
хочешь выводить в ф-ции пиши ее для вывод а в ней используй простую которая только валидирует
 
 Top
GoDr
Отправлено: 28 Мая, 2015 - 09:47:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




LIME пишет:
GoDr и чем это проще?
слово "проще" относилось к первой части ))))) ко второй части относится слово "извратиться"... Я сначала хотел ещё задействовать шаблоны (в т.ч. с применением sprintf) и подключить многоязычность, но чувствую уже перебор для скуки Радость

(Отредактировано автором: 28 Мая, 2015 - 09:47:52)



-----
Система управления веб-содержимым Lotos CMS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB