public static function check(): array
    {
        $remoteAddr = \getenv('REMOTE_ADDR') ?: null;
        $httpVia = \getenv('HTTP_VIA') ?: null;
        $proxyString = static::getProxyString();
        $ipData = static::$ipData;

        if ($remoteAddr !== null) {
            if ($proxyString !== null) {
                $clientIP = static::getFirstIP($proxyString);
                $proxyIP = $remoteAddr;
                $proxyHost = static::getHost($proxyIP);

                if ($clientIP !== null) {
                    $clientHost = static::getHost($clientIP);
                    $ipData['CLIENT_IP'] = $clientIP;
                    $ipData['CLIENT_HOST'] = $clientHost;
                    $ipData['CLIENT_IP_HOST'] = \sprintf('%s (%s)', $clientIP, $clientHost);
                }
                $ipData['PROXY_IP'] = $proxyIP;
                $ipData['PROXY_HOST'] = $proxyHost;
                $ipData['PROXY_IP_HOST'] = \sprintf('%s (%s)', $proxyIP, $proxyHost);
                $ipData['PROXY_STRING'] = $proxyString;
            } elseif ($httpVia !== null) {
                $proxyHost = static::getHost($remoteAddr);

                $ipData['PROXY_IP'] = $remoteAddr;
                $ipData['PROXY_HOST'] = $proxyHost;
                $ipData['PROXY_IP_HOST'] = \sprintf('%s (%s)', $remoteAddr, $proxyHost);
                $ipData['HTTP_VIA'] = $httpVia;
            } else {
                $clientHost = static::getHost($remoteAddr);

                $ipData['CLIENT_IP'] = $remoteAddr;
                $ipData['CLIENT_HOST'] = $clientHost;
                $ipData['CLIENT_IP_HOST'] = \sprintf('%s (%s)', $remoteAddr, $clientHost);
            }

            $ipData['FULL_IP_HOST'] = static::getFullIpHost($ipData['CLIENT_IP_HOST'], $ipData['PROXY_IP_HOST']);
        }

        return $ipData;
    }
public static function check(): array
    {
        $remoteAddr = \getenv('REMOTE_ADDR') ?: null;
        $httpVia = \getenv('HTTP_VIA') ?: null;
        $proxyString = static::getProxyString();
        $ipData = static::$ipData;

        if ($remoteAddr !== null) {
            if ($proxyString !== null) {
                $clientIP = static::getFirstIP($proxyString);
                $proxyIP = $remoteAddr;
                $proxyHost = static::getHost($proxyIP);

                if ($clientIP !== null) {
                    $clientHost = static::getHost($clientIP);
                    $ipData['CLIENT_IP'] = $clientIP;
                    $ipData['CLIENT_HOST'] = $clientHost;
                    $ipData['CLIENT_IP_HOST'] = \sprintf('%s (%s)', $clientIP, $clientHost);
                }
                $ipData['PROXY_IP'] = $proxyIP;
                $ipData['PROXY_HOST'] = $proxyHost;
                $ipData['PROXY_IP_HOST'] = \sprintf('%s (%s)', $proxyIP, $proxyHost);
                $ipData['PROXY_STRING'] = $proxyString;
            } elseif ($httpVia !== null) {
                $proxyHost = static::getHost($remoteAddr);

                $ipData['PROXY_IP'] = $remoteAddr;
                $ipData['PROXY_HOST'] = $proxyHost;
                $ipData['PROXY_IP_HOST'] = \sprintf('%s (%s)', $remoteAddr, $proxyHost);
                $ipData['HTTP_VIA'] = $httpVia;
            } else {
                $clientHost = static::getHost($remoteAddr);

                $ipData['CLIENT_IP'] = $remoteAddr;
                $ipData['CLIENT_HOST'] = $clientHost;
                $ipData['CLIENT_IP_HOST'] = \sprintf('%s (%s)', $remoteAddr, $clientHost);
            }

            $ipData['FULL_IP_HOST'] = static::getFullIpHost($ipData['CLIENT_IP_HOST'], $ipData['PROXY_IP_HOST']);
        }

        return $ipData;
    }
public static function check ( ) : array { $ remoteAddr = \ getenv ( 'REMOTE_ADDR' ) ? : null ; $ httpVia = \ getenv ( 'HTTP_VIA' ) ? : null ; $ proxyString = static :: getProxyString ( ) ; $ ipData = static :: $ ipData ; if ( $ remoteAddr !== null ) { if ( $ proxyString !== null ) { $ clientIP = static :: getFirstIP ( $ proxyString ) ; $ proxyIP = $ remoteAddr ; $ proxyHost = static :: getHost ( $ proxyIP ) ; if ( $ clientIP !== null ) { $ clientHost = static :: getHost ( $ clientIP ) ; $ ipData [ 'CLIENT_IP' ] = $ clientIP ; $ ipData [ 'CLIENT_HOST' ] = $ clientHost ; $ ipData [ 'CLIENT_IP_HOST' ] = \ sprintf ( '%s (%s)' , $ clientIP , $ clientHost ) ; } $ ipData [ 'PROXY_IP' ] = $ proxyIP ; $ ipData [ 'PROXY_HOST' ] = $ proxyHost ; $ ipData [ 'PROXY_IP_HOST' ] = \ sprintf ( '%s (%s)' , $ proxyIP , $ proxyHost ) ; $ ipData [ 'PROXY_STRING' ] = $ proxyString ; } elseif ( $ httpVia !== null ) { $ proxyHost = static :: getHost ( $ remoteAddr ) ; $ ipData [ 'PROXY_IP' ] = $ remoteAddr ; $ ipData [ 'PROXY_HOST' ] = $ proxyHost ; $ ipData [ 'PROXY_IP_HOST' ] = \ sprintf ( '%s (%s)' , $ remoteAddr , $ proxyHost ) ; $ ipData [ 'HTTP_VIA' ] = $ httpVia ; } else { $ clientHost = static :: getHost ( $ remoteAddr ) ; $ ipData [ 'CLIENT_IP' ] = $ remoteAddr ; $ ipData [ 'CLIENT_HOST' ] = $ clientHost ; $ ipData [ 'CLIENT_IP_HOST' ] = \ sprintf ( '%s (%s)' , $ remoteAddr , $ clientHost ) ; } $ ipData [ 'FULL_IP_HOST' ] = static :: getFullIpHost ( $ ipData [ 'CLIENT_IP_HOST' ] , $ ipData [ 'PROXY_IP_HOST' ] ) ; } return $ ipData ; }
Checks for visitor IP address, proxy address and returns them

@return  array
Checks for visitor IP address proxy address and returns them