private function getRemoteAddress() : ?string
    {
        $hostname = null;

        if (isset($_SERVER['REMOTE_ADDR'])) {
            $hostname = filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP);

            if (false === $hostname) {
                $hostname = null;
            }
        }

        if (function_exists('apache_request_headers')) {
            $headers = apache_request_headers();

            if ($headers === false) {
                return $hostname;
            }

            foreach ($headers as $k => $v) {
                if (strcasecmp($k, 'x-forwarded-for')) {
                    continue;
                }

                $hostname = explode(',', $v);
                $hostname = trim($hostname[0]);
                break;
            }
        }

        return $hostname;
    }
private function getRemoteAddress() : ?string
    {
        $hostname = null;

        if (isset($_SERVER['REMOTE_ADDR'])) {
            $hostname = filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP);

            if (false === $hostname) {
                $hostname = null;
            }
        }

        if (function_exists('apache_request_headers')) {
            $headers = apache_request_headers();

            if ($headers === false) {
                return $hostname;
            }

            foreach ($headers as $k => $v) {
                if (strcasecmp($k, 'x-forwarded-for')) {
                    continue;
                }

                $hostname = explode(',', $v);
                $hostname = trim($hostname[0]);
                break;
            }
        }

        return $hostname;
    }
private function getRemoteAddress ( ) : ? string { $ hostname = null ; if ( isset ( $ _SERVER [ 'REMOTE_ADDR' ] ) ) { $ hostname = filter_var ( $ _SERVER [ 'REMOTE_ADDR' ] , FILTER_VALIDATE_IP ) ; if ( false === $ hostname ) { $ hostname = null ; } } if ( function_exists ( 'apache_request_headers' ) ) { $ headers = apache_request_headers ( ) ; if ( $ headers === false ) { return $ hostname ; } foreach ( $ headers as $ k => $ v ) { if ( strcasecmp ( $ k , 'x-forwarded-for' ) ) { continue ; } $ hostname = explode ( ',' , $ v ) ; $ hostname = trim ( $ hostname [ 0 ] ) ; break ; } } return $ hostname ; }
Returns the remote address either directly or if set XFF header value.

@return string|null The ip address
Returns the remote address either directly or if set XFF header value .