Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
CRAP | |
100.00% |
4 / 4 |
Ip | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
3 | |
100.00% |
4 / 4 |
check | |
100.00% |
1 / 1 |
3 | |
100.00% |
4 / 4 |
1 | <?php |
2 | |
3 | namespace Qmp\Laravel\ValidationRules\Rules; |
4 | |
5 | |
6 | class Ip extends Rule |
7 | { |
8 | /** |
9 | * Undocumented variable |
10 | * |
11 | * @var string |
12 | */ |
13 | protected $message = 'The :attribute must be a valid public IP address'; |
14 | |
15 | /** |
16 | * Undocumented variable |
17 | * |
18 | * @var array |
19 | */ |
20 | protected $ipv4 = [FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE]; |
21 | |
22 | /** |
23 | * Undocumented variable |
24 | * |
25 | * @var array |
26 | */ |
27 | protected $ipv6 = [FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE]; |
28 | |
29 | /** |
30 | * Undocumented function |
31 | * |
32 | * @param string $attribute |
33 | * @param mixed $value |
34 | * @param array $parameters |
35 | * @return bool |
36 | */ |
37 | public function check(string $attribute, $value, array $parameters): bool |
38 | { |
39 | $value = explode('::', $value); |
40 | $value = count($value) > 1 ? $value[0] . '::' : $value[0]; |
41 | |
42 | return filter_var(trim($value), ...$this->ipv4) |
43 | || filter_var(trim($value), ...$this->ipv6); |
44 | } |
45 | } |