$ip, 'format' => 'json'], '', '&', PHP_QUERY_RFC3986 ); $handle = curl_init($url); curl_setopt_array($handle, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey, 'Accept: application/json'], CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 15, CURLOPT_FOLLOWLOCATION => false, ]); $body = curl_exec($handle); $status = (int) curl_getinfo($handle, CURLINFO_RESPONSE_CODE); curl_close($handle); if ($body === false || $status !== 200 || strlen($body) > 65536) { throw new RuntimeException('Lookup unavailable; result is unknown.'); } try { $data = json_decode($body, true, 32, JSON_THROW_ON_ERROR); if (!is_array($data) || ($data['status'] ?? null) !== 'success' || !in_array($data['proxy'] ?? null, [0, 1], true)) { throw new RuntimeException('Unexpected verdict'); } } catch (Throwable $error) { throw new RuntimeException('Invalid lookup response; result is unknown.'); } return ['ip' => $data['ip'], 'proxy' => $data['proxy'], 'flags' => $data['flags'] ?? null]; } if (PHP_SAPI === 'cli' && realpath($_SERVER['SCRIPT_FILENAME'] ?? '') === __FILE__) { try { $result = checkIp($argv[1] ?? '', getenv('PROXYRADAR_API_KEY') ?: ''); echo json_encode($result, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR) . PHP_EOL; } catch (Throwable $error) { fwrite(STDERR, $error->getMessage() . PHP_EOL); exit(1); } }