public function isValid($data) { $isValid = parent::isValid($data); $ipValidator = new Logic_Validate_Ip(); $ips = explode(PHP_EOL, $data['ip']); foreach ($ips as $ip) { list($ip_address, $mask) = explode('/', $ip); $ipValidator->setRange($ip); if (false === $ipValidator->isValid(trim($ip_address))) { $this->getElement('ip')->addError("{$ip} nie jest poprawnym adresem IP"); $isValid = false; } } return $isValid; }
public function addip($params) { $validator = new Logic_Validate_Ip(); $ips = array(); foreach ($params as $param) { if ($param['name'] == 'ip') { $ips = explode(PHP_EOL, $param['value']); foreach ($ips as $key => $ip) { list($ip_address, $mask) = explode('/', $ip); $validator->setRange($ip); if (false === $validator->isValid(trim($ip_address))) { unset($ips[$key]); } } } $data[$param['name']] = $param['value']; } if (!empty($ips)) { $model = new WsSaveIP(); $model->addIP($ips, $data['ip_comment']); } else { throw new Logic_Ws_Exception('Niepoprawny format adresu IP'); } }
/** * czy ip należy on do zadanej podsieci w kolumnie 'ip'::cidr[] * * @param string $ip * @param integer $client_id * @return boolean */ private function _checkIp() { $client = Logic_Client::getInstance(); //do not check IP if client shipping type is HTTP if ($client->getClient()->shipping_type === Logic_Ws_ServiceSet_ServiceSet::SHIPPING_TYPE_HTTP) { return true; } $wsIpRowset = $client->getIpList(); $valid = new Logic_Validate_Ip(); foreach ($wsIpRowset as $rowIpList) { foreach ($rowIpList->ip as $ipRow) { $valid->setRange($ipRow); if ($valid->isValid($this->_clientIpAddress)) { return true; } } } $this->addCheckerError('IP Address ' . $this->_clientIpAddress . ' is not ' . 'allowed.', __METHOD__); return false; }