1<?php 2/** 3 * Zend Framework 4 * 5 * LICENSE 6 * 7 * This source file is subject to the new BSD license that is bundled 8 * with this package in the file LICENSE.txt. 9 * It is also available through the world-wide-web at this URL: 10 * http://framework.zend.com/license/new-bsd 11 * If you did not receive a copy of the license and are unable to 12 * obtain it through the world-wide-web, please send an email 13 * to license@zend.com so we can send you a copy immediately. 14 * 15 * @category Zend 16 * @package Zend_Validate 17 * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) 18 * @license http://framework.zend.com/license/new-bsd New BSD License 19 * @version $Id: Ip.php 13289 2008-12-15 23:18:58Z tjohns $ 20 */ 21 22/** 23 * @see Zend_Validate_Abstract 24 */ 25require_once 'Zend/Validate/Abstract.php'; 26 27/** 28 * @category Zend 29 * @package Zend_Validate 30 * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) 31 * @license http://framework.zend.com/license/new-bsd New BSD License 32 */ 33class Zend_Validate_Ip extends Zend_Validate_Abstract 34{ 35 const NOT_IP_ADDRESS = 'notIpAddress'; 36 37 /** 38 * @var array 39 */ 40 protected $_messageTemplates = array( 41 self::NOT_IP_ADDRESS => "'%value%' does not appear to be a valid IP address" 42 ); 43 44 /** 45 * Defined by Zend_Validate_Interface 46 * 47 * Returns true if and only if $value is a valid IP address 48 * 49 * @param mixed $value 50 * @return boolean 51 */ 52 public function isValid($value) 53 { 54 $valueString = (string) $value; 55 56 $this->_setValue($valueString); 57 58 if ((ip2long($valueString) === false) || (long2ip(ip2long($valueString)) !== $valueString)) { 59 if (!function_exists('inet_pton')) { 60 $this->_error(); 61 return false; 62 } else if ((@inet_pton($value) === false) ||(inet_ntop(@inet_pton($value)) !== $valueString)) { 63 $this->_error(); 64 return false; 65 } 66 } 67 68 return true; 69 } 70 71} 72