public function fetchInfo($url)
    {
        $response = null;

        if (function_exists('curl_init')) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_USERAGENT, 'LarageoPlugin Package v1.0');
            $response = curl_exec($ch);
            curl_close($ch);
        } elseif (ini_get('allow_url_fopen')) {
            $response = file_get_contents($url, 'r');
        } else {
            throw new \Exception('LarageoPlugin requires the CURL PHP extension or allow_url_fopen set to 1!');
        }

        $response = json_decode($response);

        if (empty($response)) {
            throw new \Exception('Ops! The data is empty! Is '.$url.' acessible?');
        }

        if (isset($response->geoplugin_status) && $response->geoplugin_status == 404) {
            throw new \Exception('Ops! Your request returned a 404 error! Is '.$url.' acessible?');
        }

        return $response;
    }