Address::isPrivate()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 0
crap 2
1
<?php
2
3
namespace LVR\IP;
4
5
use Symfony\Component\HttpFoundation\IpUtils;
6
7
class Address
8
{
9
    protected $address;
10
11
    protected $v4 = [
12
        '10.0.0.0/8',
13
        '172.16.0.0/12',
14
        '192.168.0.0/16'
15
    ];
16
17
    protected $v6 = [
18
        'fc00::/7',
19
        'fd00::/8'
20
    ];
21
22 4
    public function __construct($address)
23
    {
24 4
        $this->address = $address;
25 4
    }
26
27 4
    public function isV4()
28
    {
29 4
        return !$this->isV6();
30
    }
31
32 4
    public function isV6()
33
    {
34 4
        return substr_count($this->address, ':') > 1;
35
    }
36
37 4
    public function isPrivate()
38
    {
39 4
        $ips = $this->isV4() ? $this->v4 : $this->v6;
40
41 4
        return IpUtils::checkIp($this->address, $ips);
42
    }
43
44 2
    public function isPublic()
45
    {
46 2
        return !$this->isPrivate();
47
    }
48
}
49