Completed
Push — master ( f8807b...5769db )
by Nikola
06:22
created

ResolveIdentifierFromIpAddress   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 17
c 0
b 0
f 0
wmc 3
lcom 0
cbo 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A fromRequest() 0 14 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace RateLimit\Http;
6
7
use Psr\Http\Message\ServerRequestInterface;
8
9
final class ResolveIdentifierFromIpAddress implements ResolveIdentifier
10
{
11
    public function fromRequest(ServerRequestInterface $request): string
12
    {
13
        $serverParams = $request->getServerParams();
14
15
        if (array_key_exists('HTTP_CLIENT_IP', $serverParams)) {
16
            return $serverParams['HTTP_CLIENT_IP'];
17
        }
18
19
        if (array_key_exists('HTTP_X_FORWARDED_FOR', $serverParams)) {
20
            return $serverParams['HTTP_X_FORWARDED_FOR'];
21
        }
22
23
        return $serverParams['REMOTE_ADDR'] ?? '127.0.0.1';
24
    }
25
}
26