Detecteren of website offline is of in onderhoud
De ervaring leert echter dat men nogal slordig is met het verwijderen van de website op forums.
Maar het is overdreven om een lijst te maken met daartussen websites die offline zijn.
Dat kan met het lezen van de header duidelijk worden.
Bij onderhoud ligt dat anders.
Als er een vervangende startpagina is gemaakt zal het wel moeilijk zijn om te detecteren.
Maar als er een htaccess is gemaakt, kun je daar dan wat mee?
Of als er een (php) redirect is gemaakt?
Mijn vraag komt voort uit het komen en gaan van internet radiostations en DJ's.
Gewijzigd op 15/05/2016 14:14:23 door - Ariën -
In het eerste geval kun je dit zelf inprogrammeren. Integreer een globale aan/uit knop. De site zou dan bijvoorbeeld alleen beschikbaar kunnen zijn voor developers als deze uitgeschakeld is.
Indien dan een onderhoudspagina wordt geserveerd aan een niet-developer zou je deze een header mee kunnen geven, bijvoorbeeld:
404 Not Found, of
503 Service Unavailable
Overigens zou het systeem ook een 404 HTTP status code moeten produceren indien iemand een niet (langer) bestaande pagina opvraagt. Anders is je 404 pagina (die vrolijk een 200 OK header retourneert) niet te onderscheiden van een normale pagina.
In het tweede geval ben je overgeleverd aan de goden en ben je afhankelijk van hoe zo'n site is opgezet.
Daarnaast kunnen libraries zoals cURL redirects volgen, als dat je eigenlijke vraag is. Hoe meer ik je topic lees, hoe onduidelijker het eigenlijk wordt wat je nu eigenlijk wilt weten...
Gaat om mijn eigen site.
Maar om te checken of andere websites offline zijn of in onderhoud.
Dus als webradio vanlid offline is, wil ik scriptje maken om die niet mee te nemen in mijn lijst.
Dat is niet zo moeilijk.
Maar gaat me vooral om het tijdelijk offline zijn ofin onderhoud.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
function checkURL($url){
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpcode>=200 && $httpcode<300) return true;
else return false;
}
if (checkURL("http://www.phphulp.nl")) {
echo "Site is UP";
} else {
echo "Site is DOWN";
}
?>
function checkURL($url){
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpcode>=200 && $httpcode<300) return true;
else return false;
}
if (checkURL("http://www.phphulp.nl")) {
echo "Site is UP";
} else {
echo "Site is DOWN";
}
?>
Gewijzigd op 15/05/2016 15:19:12 door - Ariën -
Maar alle sites geven DOWN aan.
Overigens heb ik even bij de serverinfo gekeken. Curl staat erop.
En wat geeft $httpcode terug?
Geen errors.
Toevoeging op 15/05/2016 21:22:20:
Denk dat phphulp een redirect is. code 302
En mijn eigen adres is nu nog verbidden. code 403.
Bij invoeren van google gaat het goed. code 200.
Dus werkt wel...
Gewijzigd op 15/05/2016 21:23:56 door Marthijn Buijs
En die was echt niet down maar redirect waarschijnlijk.
En dat verbaasde me.
Mijn eigen site staat nog niks als index, dus die foutcode klopt ook wel.
En bij google.nl was de response UP.
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Ik sta echt versteld wat de Curl-lib allemaal kan :O
Meer dan je denkt.... ;-)