Autor Zpráva
Anonymní
Profil *
Ahoj, mám tento kód na cURL:
<?php
function get_link_status($url, $timeout = 10){
    $ch = curl_init();
    // set cURL options
    $opts = array(CURLOPT_RETURNTRANSFER => true,  // do not output to browser
                  CURLOPT_URL => $url,             // set URL
                  CURLOPT_NOBODY => true,          // do a HEAD request only
                  CURLOPT_FOLLOWLOCATION => true,  // follow location headers
                  CURLOPT_TIMEOUT => $timeout);    // set timeout


    curl_setopt_array($ch, $opts);

    curl_exec($ch); // do it!

    $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // find HTTP status

    curl_close($ch); // close handle

    return $status;
}
pokud spustím například tohle:
get_link_status("http://gooooooooooooooogle-neni.com",20)
tak mi to vyhodí jako status code 200, proč? díky.
Davex
Profil
Možná proto, protože se server na zadanou adresu dokáže připojit a stránku v pořádku stáhne. Stává se to třeba, když server používá DNS servery OpenDNS, které všechny neexistující domény prohlašují za existující a podvrhují nějakou svojí IP adresu.
Anonymní
Profil *
Davex:
A dá se tomu nějak zabránit?
Davex
Profil
Z pohledu PHP se tomu asi zabránit nedá. Na webserveru by se musely nastavit nějaké slušnější DNS servery.
Anonymní
Profil *
Davex:
Jaký dns server? Například bind9?
Davex
Profil
Pokud je to vlastní server, tak stačí nastavit IP adresy jiných DNS serverů v nastavení systému. Například resolvery od CZ.NIC.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: