public function field_validation_ip_validator::validate in Field Validation 7.2
Validate field.
Overrides field_validation_validator::validate
File
- field_validation_extras/
plugins/ validator/ field_validation_ip_validator.inc, line 21
Class
Code
public function validate() {
$settings = $this->rule->settings;
if ($this->value !== '' && !is_null($this->value)) {
$version = isset($settings['version']) ? $settings['version'] : '';
switch ($version) {
case '4':
$flag = FILTER_FLAG_IPV4;
break;
case '6':
$flag = FILTER_FLAG_IPV6;
break;
case '4_no_priv':
$flag = FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE;
break;
case '6_no_priv':
$flag = FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE;
break;
case 'all_no_priv':
$flag = FILTER_FLAG_NO_PRIV_RANGE;
break;
case '4_no_res':
$flag = FILTER_FLAG_IPV4 | FILTER_FLAG_NO_RES_RANGE;
break;
case '6_no_res':
$flag = FILTER_FLAG_IPV6 | FILTER_FLAG_NO_RES_RANGE;
break;
case 'all_no_res':
$flag = FILTER_FLAG_NO_RES_RANGE;
break;
case '4_public':
$flag = FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
break;
case '6_public':
$flag = FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
break;
case 'all_public':
$flag = FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
break;
default:
$flag = NULL;
break;
}
if (!filter_var($this->value, FILTER_VALIDATE_IP, $flag)) {
$this
->set_error();
}
}
}