🔍 Procurando WebSDRs..."; foreach ($this->knownWebSDRs as $url) { if ($this->checkWebSDR($url)) { $this->foundSites[] = $url; echo "
✓ Encontrado: $url
"; } else { echo "✗ Não acessível: $url
"; } } $this->searchAdditionalSites(); } private function checkWebSDR($url) { $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 10, CURLOPT_FOLLOWLOCATION => true, CURLOPT_USERAGENT => 'WebSDR-Finder/1.0', CURLOPT_SSL_VERIFYPEER => false ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return ($httpCode == 200 && $this->isWebSDRPage($response)); } private function isWebSDRPage($content) { $indicators = [ 'websdr', 'kiwisdr', 'sdr.hu', 'receiver', 'waterfall', 'spectrum', 'radio', 'frequency' ]; $content = strtolower($content); $matches = 0; foreach ($indicators as $indicator) { if (strpos($content, $indicator) !== false) { $matches++; } } return $matches >= 2; } private function searchAdditionalSites() { $searchEngines = [ 'https://www.google.com/search?q=inurl:websdr', 'https://www.google.com/search?q="public+websdr"', 'https://www.google.com/search?q=kiwisdr+public' ]; echo "Buscando em: $searchUrl
"; } public function displayLinks() { if (empty($this->foundSites)) { echo "Este programa encontra e cria links para acesso rápido a receptores WebSDR.
findWebSDRs(); $finder->displayLinks(); ?>