Check script

Status
Niet open voor verdere reacties.

michael64142

Gebruiker
Lid geworden
12 okt 2012
Berichten
71
Hi,

Ik wil graag een script dat checkt of een website online is of offline.
Eigenlijk dus een soort isdownforeveryoneorjustme.com. Hierbij wil ik dus ook dat zodra je een link in typt, de url van je website word: http://website.nl/?url=http://link.nl

Ik heb al rond gezocht op Google, en kwam dit tegen (zijn 2 losse stukjes, wat wel beide op die website vermeld stonden):
Code:
function isSiteAvailable($url)
   {
           //check, if a valid url is provided
           if(!filter_var($url, FILTER_VALIDATE_URL))
           {
                   return 'URL provided wasn\'t valid';
           }
 
           //make the connection with curl
           $cl = curl_init($url);
           curl_setopt($cl,CURLOPT_CONNECTTIMEOUT,10);
           curl_setopt($cl,CURLOPT_HEADER,true);
           curl_setopt($cl,CURLOPT_NOBODY,true);
           curl_setopt($cl,CURLOPT_RETURNTRANSFER,true);
 
           //get response
           $response = curl_exec($cl);
 
           curl_close($cl);
 
           if ($response) return 'Site seems to be up and running!';
 
           return 'Oops nothing found, the site is either offline or the domain doesn\'t exist';
   }
 
 
// check if site exists / is up
if($_GET['url']){
 
   $response = isSiteAvailable($_GET['url']);
   $message = '<div class="response">'.$response.'</div>';
}

En:

Code:
<?php echo $message;?>
 
<form action="" method="get">
 
Enter a URL below or click an example below:<br/>
 
<ul>
<li><a href="?url=http://harkable.com">harkable.com</a></li>
<li><a href="?url=http://google.com">google.com</a></li>
<li><a href="?url=http://sfdhjsdkhfskjfhskjfh.om">sfdhjsdkhfskjfhskjfh.om</a></li>
</ul>
 
<input name="url" type="text" value="<?php echo $_GET['url'];?>" />
 
</form>

Als ik deze gewoon samenvoeg dan werkt het niet.

Ik vond dit script hier; http://papermashup.com/php-check-if-your-website-is-up/
 
het kan aan 2 verschillende problemen liggen.

1. De server waar jij op werkt ondersteund geen curl.
2. Je kan geen urls zomaar in een url variabele zetten. hiervoor heb je urlencode/urldecode te gebruiken. Of je kan een POST form gebruiken.

Hieronder vind je een script dat ik wel eens gebruik om urls te testen. Je hoeft deze alleen op je server te zetten en te testen. Hij controleert zelf de functies en code. Je kan de return opties zelf aanpassen uiteraard code 200 is de standaard online code. Mijn script is iets wat overdreven voor alleen een online check maar nu heb je alles.:D

PHP:
<?php
// Kijk of cURL bestaat
if(!function_exists('curl_init')){
	die('De php functie cURL is niet ingeladen of in geinstalleerd. http://www.php.net/manual/en/book.curl.php');
}

function checkUrl($url){
	//check, if a valid url is provided
	if(!filter_var($url, FILTER_VALIDATE_URL)){
		return 'Bad url';
	}
	else{
		$ch = curl_init($url);
		$ret = curl_setopt($ch, CURLOPT_HEADER, true);
		$ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
		$ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		$ret = curl_setopt($ch, CURLOPT_TIMEOUT, 10);
		$ret = curl_exec($ch);
		if(empty($ret)){
			$data = curl_error($ch);
			curl_close($ch);
			return $data;
		}
		else{
			$info = curl_getinfo($ch);
			curl_close($ch);
			if(empty($info['http_code'])){
				return 'Geen http code ontvangen.';
			}
			else{
				$httpcode = (int) $info['http_code'];
				if($httpcode == 100){ return 'Continue'; }
				else if($httpcode == 101){ return 'Switching Protocols'; }
				else if($httpcode == 200){ return 'OK'; }
				else if($httpcode == 201){ return 'Created'; }
				else if($httpcode == 202){ return 'Accepted'; }
				else if($httpcode == 203){ return 'Non-Authoritative Information'; }
				else if($httpcode == 204){ return 'No Content'; }
				else if($httpcode == 205){ return 'Reset Content'; }
				else if($httpcode == 206){ return 'Partial Content'; }
				else if($httpcode == 300){ return 'Multiple Choices'; }
				else if($httpcode == 301){ return 'Moved Permanently'; }
				else if($httpcode == 302){ return 'Found'; }
				else if($httpcode == 303){ return 'See Other'; }
				else if($httpcode == 304){ return 'Not Modified'; }
				else if($httpcode == 305){ return 'Use Proxy'; }
				else if($httpcode == 306){ return '(Unused)'; }
				else if($httpcode == 307){ return 'Temporary Redirect'; }
				else if($httpcode == 400){ return 'Bad Request'; }
				else if($httpcode == 401){ return 'Unauthorized'; }
				else if($httpcode == 402){ return 'Payment Required'; }
				else if($httpcode == 403){ return 'Forbidden'; }
				else if($httpcode == 404){ return 'Not Found'; }
				else if($httpcode == 405){ return 'Method Not Allowed'; }
				else if($httpcode == 406){ return 'Not Acceptable'; }
				else if($httpcode == 407){ return 'Proxy Authentication Required'; }
				else if($httpcode == 408){ return 'Request Timeout'; }
				else if($httpcode == 409){ return 'Conflict'; }
				else if($httpcode == 410){ return 'Gone'; }
				else if($httpcode == 411){ return 'Length Required'; }
				else if($httpcode == 412){ return 'Precondition Failed'; }
				else if($httpcode == 413){ return 'Request Entity Too Large'; }
				else if($httpcode == 414){ return 'Request-URI Too Long'; }
				else if($httpcode == 415){ return 'Unsupported Media Type'; }
				else if($httpcode == 416){ return 'Requested Range Not Satisfiable'; }
				else if($httpcode == 417){ return 'Expectation Failed'; }
				else if($httpcode == 500){ return 'Internal Server Error'; }
				else if($httpcode == 501){ return 'Not Implemented'; }
				else if($httpcode == 502){ return 'Bad Gateway'; }
				else if($httpcode == 503){ return 'Service Unavailable'; }
				else if($httpcode == 504){ return 'Gateway Timeout'; }
				else if($httpcode == 505){ return 'HTTP Version Not Supported'; }
				else{ return 'Unknown: '.$httpcode; }
			}
		}
	}
}

// Controleer voor aanvraag
$posturl = 'Geen';
if(isset($_POST['url']) and !empty($_POST['url'])){
	$posturl = $_POST['url'];
}

?>

<html>
	<head>
		<title>Check URL</title>
	</head>
	<body>
		<table>
			<thead>
				<tr>
					<th>Optie</th>
					<th>Opgevraagde URL</th>
					<th>Status URL</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td>Is verhuist</td>
					<td>http://google.nl</td>
					<td><?php echo checkUrl('http://google.nl'); ?></td>
				</tr>
				<tr>
					<td>Bestaat maar geen toegang</td>
					<td>http://ikbestaniet.nl</td>
					<td><?php echo checkUrl('http://ikbestaniet.nl'); ?></td>
				</tr>
				<tr>
					<td>Bestaat en is online</td>
					<td>http://helpmij.nl</td>
					<td><?php echo checkUrl('http://helpmij.nl'); ?></td>
				</tr>
				<tr>
					<td>Door gebruiker ingevoerd</td>
					<td><?php echo $posturl; ?></td>
					<td><?php if($posturl != 'Geen'){ echo checkUrl($posturl); } ?></td>
				</tr>

			</tbody>
		</table>
		<hr/>
		<div id="form">
			<form id="urlform" action="#" method="POST">
				<label for="url">Typ url om te testen:</label><input type="text" name="url" id="url"/><input type="submit" value="Check URL"/>
			</form>
		</div>
	</body>
</html>
 
Aha,

dan zit je met het probleem van urlencode. php kan namelijk niet tekens uit een url lezen. Deze moeten gecodeerd zijn.

Bijvoorbeeld: checkme.php?url=http://helpmij.nl
Dit is nooit door php uit te lezen omdat hij de : en de / niet begrijpt ook spaties en andere tekens begrijpt php niet wanneer dit in een url variable staat.
Het voorbeeld moet dus zijn checkme.php?url=http%3a%2f%2fhelpmij.nl

in php gebruik je dan:
PHP:
if($_GET['url']){
 
   $response = isSiteAvailable(urldecode($_GET['url']));
   $message = '<div class="response">'.$response.'</div>';
}

om met vb.net een url encode te creeren lees je op msdn.
 
Laatst bewerkt:
Gaat deze wel samen met jouw script? Zo ja; waar kan ik het dan het beste plaatsen?
 
Geef me ff een 15min pas ik ff mijn script aan. Dan hoef jij alleen je vb.net aan te passen.
 
Als je hem met de vb.net aanroept kan dat kloppen omdat daar geen controle op zit. Probeer de volgende code eens. Ik heb er een paar voorbeeldjes in zitten. Bij een onbestaand url krijg je als het goed is een curl melding dat hij niet gevonden is. code lijn 19 t/m 23

PHP:
<?php
// Kijk of cURL bestaat
if(!function_exists('curl_init')){
	die('De php functie cURL is niet ingeladen of in geinstalleerd. http://www.php.net/manual/en/book.curl.php');
}

function checkUrl($url){
	//check, if a valid url is provided
	if(!filter_var($url, FILTER_VALIDATE_URL)){
		return 'Bad url';
	}
	else{
		$ch = curl_init($url);
		$ret = curl_setopt($ch, CURLOPT_HEADER, true);
		$ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
		$ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		$ret = curl_setopt($ch, CURLOPT_TIMEOUT, 10);
		$ret = curl_exec($ch);
		if(empty($ret)){
			$data = curl_error($ch);
			curl_close($ch);
			return $data;
		}
		else{
			$info = curl_getinfo($ch);
			curl_close($ch);
			if(empty($info['http_code'])){
				return 'Geen http code ontvangen.';
			}
			else{
				$httpcode = (int) $info['http_code'];
				if($httpcode == 100){ return 'Continue'; }
				else if($httpcode == 101){ return 'Switching Protocols'; }
				else if($httpcode == 200){ return 'OK'; }
				else if($httpcode == 201){ return 'Created'; }
				else if($httpcode == 202){ return 'Accepted'; }
				else if($httpcode == 203){ return 'Non-Authoritative Information'; }
				else if($httpcode == 204){ return 'No Content'; }
				else if($httpcode == 205){ return 'Reset Content'; }
				else if($httpcode == 206){ return 'Partial Content'; }
				else if($httpcode == 300){ return 'Multiple Choices'; }
				else if($httpcode == 301){ return 'Moved Permanently'; }
				else if($httpcode == 302){ return 'Found'; }
				else if($httpcode == 303){ return 'See Other'; }
				else if($httpcode == 304){ return 'Not Modified'; }
				else if($httpcode == 305){ return 'Use Proxy'; }
				else if($httpcode == 306){ return '(Unused)'; }
				else if($httpcode == 307){ return 'Temporary Redirect'; }
				else if($httpcode == 400){ return 'Bad Request'; }
				else if($httpcode == 401){ return 'Unauthorized'; }
				else if($httpcode == 402){ return 'Payment Required'; }
				else if($httpcode == 403){ return 'Forbidden'; }
				else if($httpcode == 404){ return 'Not Found'; }
				else if($httpcode == 405){ return 'Method Not Allowed'; }
				else if($httpcode == 406){ return 'Not Acceptable'; }
				else if($httpcode == 407){ return 'Proxy Authentication Required'; }
				else if($httpcode == 408){ return 'Request Timeout'; }
				else if($httpcode == 409){ return 'Conflict'; }
				else if($httpcode == 410){ return 'Gone'; }
				else if($httpcode == 411){ return 'Length Required'; }
				else if($httpcode == 412){ return 'Precondition Failed'; }
				else if($httpcode == 413){ return 'Request Entity Too Large'; }
				else if($httpcode == 414){ return 'Request-URI Too Long'; }
				else if($httpcode == 415){ return 'Unsupported Media Type'; }
				else if($httpcode == 416){ return 'Requested Range Not Satisfiable'; }
				else if($httpcode == 417){ return 'Expectation Failed'; }
				else if($httpcode == 500){ return 'Internal Server Error'; }
				else if($httpcode == 501){ return 'Not Implemented'; }
				else if($httpcode == 502){ return 'Bad Gateway'; }
				else if($httpcode == 503){ return 'Service Unavailable'; }
				else if($httpcode == 504){ return 'Gateway Timeout'; }
				else if($httpcode == 505){ return 'HTTP Version Not Supported'; }
				else{ return 'Unknown: '.$httpcode; }
			}
		}
	}
}

// Controleer voor aanvraag
$posturl = 'Geen';
if(isset($_GET['url']) and !empty($_GET['url'])){
	$posturl = urldecode($_GET['url']);
}

?>

<html>
	<head>
		<title>Check URL</title>
	</head>
	<body>
		<table>
			<thead>
				<tr>
					<th>Optie</th>
					<th>Opgevraagde URL</th>
					<th>Status URL</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td>Door gebruiker ingevoerd</td>
					<td><?php echo $posturl; ?></td>
					<td><?php if($posturl != 'Geen'){ echo checkUrl($posturl); } ?></td>
				</tr>
			</tbody>
		</table>
		<hr/>
		<div id="form">
			<ul>
				<li>
					<a href="?url=<?php echo urlencode('http://google.nl'); ?>"> http://google.nl </a>
				</li>
				<li>
					<a href="?url=<?php echo urlencode('http://ikbestaniet.nl'); ?>"> http://ikbestaniet.nl </a>
				</li>
				<li>
					<a href="?url=<?php echo urlencode('http://helpmij.nl'); ?>"> http://helpmij.nl </a>
				</li>
				<li>
					<a href="?url=<?php echo urlencode('http://qwsderfgtredf.nl'); ?>"> http://qwsderfgtredf.nl </a>
				</li>
			</ul>
		</div>
	</body>
</html>
 
Nee, ik probeerde het gewoon via mijn website, en die zijn gewoon 'OK'.

Ik ga nu je vernieuwde script proberen ;)

Edit: Het ?url gedeelte werkt nu wel, maar als ik dus op een van jouw url's klik (de onderste - http://qwsderfgtredf.nl) zegt hij alweer 'OK'
 
Laatst bewerkt:
wat is jouw website bij mij doet hij het wel namelijk. mijn web: http://home.paules.eu/php/online.php

Anders plaats eens de volgende code en roep die eens aan. Vervolgens maak een screenshot met wat je te zien krijgt. het zou namelijk een php fout kunnen zijn. Dit script laat de pagina zien met de headertext die wordt opgevragen.

PHP:
<?php
// Kijk of cURL bestaat
if(!function_exists('curl_init')){
	die('De php functie cURL is niet ingeladen of in geinstalleerd. http://www.php.net/manual/en/book.curl.php');
}

function checkUrl($url){
	//check, if a valid url is provided
	if(!filter_var($url, FILTER_VALIDATE_URL)){
		return 'Bad url';
	}
	else{
		$ch = curl_init($url);
		$ret = curl_setopt($ch, CURLOPT_HEADER, true);
		$ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
		$ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		$ret = curl_setopt($ch, CURLOPT_TIMEOUT, 10);
		$ret = curl_exec($ch);
		if(empty($ret)){
			$data = curl_error($ch);
			curl_close($ch);
			return $data;
		}
		else{
			$info = curl_getinfo($ch);
			curl_close($ch);
			if(empty($info['http_code'])){
				return 'Geen http code ontvangen.';
			}
			else{
				return $ret;
			}
		}
	}
}
echo checkUrl('http://qwsderfgtredf.nl');
 
Laatst bewerkt:
Mijn website voor de check: http://api.mwnetworks.eu/check/

Mijn code:
PHP:
<?php
// Kijk of cURL bestaat
if(!function_exists('curl_init')){
    die('De php functie cURL is niet ingeladen of in geinstalleerd. http://www.php.net/manual/en/book.curl.php');
}
 
function checkUrl($url){
    //check, if a valid url is provided
    if(!filter_var($url, FILTER_VALIDATE_URL)){
        return 'Bad url';
    }
    else{
        $ch = curl_init($url);
        $ret = curl_setopt($ch, CURLOPT_HEADER, true);
        $ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
        $ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $ret = curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        $ret = curl_exec($ch);
        if(empty($ret)){
            $data = curl_error($ch);
            curl_close($ch);
            return $data;
        }
        else{
            $info = curl_getinfo($ch);
            curl_close($ch);
            if(empty($info['http_code'])){
                return 'Geen http code ontvangen.';
            }
            else{
                $httpcode = (int) $info['http_code'];
                if($httpcode == 100){ return 'Continue'; }
                else if($httpcode == 101){ return 'Switching Protocols'; }
                else if($httpcode == 200){ return 'OK'; }
                else if($httpcode == 201){ return 'Created'; }
                else if($httpcode == 202){ return 'Accepted'; }
                else if($httpcode == 203){ return 'Non-Authoritative Information'; }
                else if($httpcode == 204){ return 'No Content'; }
                else if($httpcode == 205){ return 'Reset Content'; }
                else if($httpcode == 206){ return 'Partial Content'; }
                else if($httpcode == 300){ return 'Multiple Choices'; }
                else if($httpcode == 301){ return 'Moved Permanently'; }
                else if($httpcode == 302){ return 'Found'; }
                else if($httpcode == 303){ return 'See Other'; }
                else if($httpcode == 304){ return 'Not Modified'; }
                else if($httpcode == 305){ return 'Use Proxy'; }
                else if($httpcode == 306){ return '(Unused)'; }
                else if($httpcode == 307){ return 'Temporary Redirect'; }
                else if($httpcode == 400){ return 'Bad Request'; }
                else if($httpcode == 401){ return 'Unauthorized'; }
                else if($httpcode == 402){ return 'Payment Required'; }
                else if($httpcode == 403){ return 'Forbidden'; }
                else if($httpcode == 404){ return 'Not Found'; }
                else if($httpcode == 405){ return 'Method Not Allowed'; }
                else if($httpcode == 406){ return 'Not Acceptable'; }
                else if($httpcode == 407){ return 'Proxy Authentication Required'; }
                else if($httpcode == 408){ return 'Request Timeout'; }
                else if($httpcode == 409){ return 'Conflict'; }
                else if($httpcode == 410){ return 'Gone'; }
                else if($httpcode == 411){ return 'Length Required'; }
                else if($httpcode == 412){ return 'Precondition Failed'; }
                else if($httpcode == 413){ return 'Request Entity Too Large'; }
                else if($httpcode == 414){ return 'Request-URI Too Long'; }
                else if($httpcode == 415){ return 'Unsupported Media Type'; }
                else if($httpcode == 416){ return 'Requested Range Not Satisfiable'; }
                else if($httpcode == 417){ return 'Expectation Failed'; }
                else if($httpcode == 500){ return 'Internal Server Error'; }
                else if($httpcode == 501){ return 'Not Implemented'; }
                else if($httpcode == 502){ return 'Bad Gateway'; }
                else if($httpcode == 503){ return 'Service Unavailable'; }
                else if($httpcode == 504){ return 'Gateway Timeout'; }
                else if($httpcode == 505){ return 'HTTP Version Not Supported'; }
                else{ return 'Unknown: '.$httpcode; }
            }
        }
    }
}
 
// Controleer voor aanvraag
$posturl = 'Geen';
if(isset($_GET['url']) and !empty($_GET['url'])){
    $posturl = urldecode($_GET['url']);
}
 
?>
 
<html>
    <head>
        <title>Check URL</title>
    </head>
    <body>
        <table>
            <thead>
                <tr>
                    <th>Optie</th>
                    <th>Opgevraagde URL</th>
                    <th>Status URL</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Door gebruiker ingevoerd</td>
                    <td><?php echo $posturl; ?></td>
                    <td><?php if($posturl != 'Geen'){ echo checkUrl($posturl); } ?></td>
                </tr>
            </tbody>
        </table>
        <hr/>
        <div id="form">
            <ul>
                <li>
                    <a href="?url=<?php echo urlencode('http://google.nl'); ?>"> http://google.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://ikbestaniet.nl'); ?>"> http://ikbestaniet.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://helpmij.nl'); ?>"> http://helpmij.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://qwsderfgtredf.nl'); ?>"> http://qwsderfgtredf.nl </a>
                </li>
            </ul>
        </div>
    </body>
</html>
 
Inderdaad erg vreemd. Kan je mijn code van #10 er eens inzetten. Dan kan ik zien welke pagina hij vind. Zo weet ik wat er verkeerd gaat.
 
Het probleem zit hem in je plesk. Er draait een nutteloze Reverse Proxy Server (nginx). Heb ook op mijn server problemen gehad met da rot ding. die moet je gewoon uitschakelen.

1. Open je plesk panel
2. Ga naar Tools & Settings -> Services Management
3. Stop de Reverse Proxy Server (nginx) (Waarschijnlijk je onderste.)

Wanneer je geen toegang hebt tot dat gedeelte van je plesk moet je contact opnemen met het hosting bedrijf.

Wat doet die Reverse Proxy Server (nginx)?
Eigenlijk alleen maar re-directen wanneer een niet bestaande url word geladen. Verder weet ik het niet.
 
Laatst bewerkt:
Mijn hoster gaat hem niet uitschakelen. Dit is wat hij zei:


"Nginx is meer dan een redirect, het is de cache die ervoor zorgt dat paginas op plesk razendsnel geladen worden in plaats van ze telkens door apache te halen.

Nginx kunnen we dus niet uitschakelen."
 
okey, Dan moet ik een script bedenken die deze pagina opvangt en die dan als niet gevonden markeert. Dit kost even tijd hoelang weet ik niet precies. Ik ga ervan uit een dag of 3. (Moet overdag gewoon werken)
 
Het heeft even geduurd voor ik een oplossing had gevonden. Wat langer dan verwacht maar hier een mogelijke oplossing. (Zonder CURL)
Bij lijn 15 t/m 17 vang ik de plesk nginx reverse proxy server op zodat hij dan ook gewoon een offline melding geeft.

De reden waarom ik niet meer gebruik maak van cURL is omdat ik geen goede code kon vinden om de header informatie SERVER te verkrijgen. Wel samen met andere header informatie maar dat krijg ik niet gesplit in array. daarom maak ik nu gebruik ban de php get_headers() functie. Dit is voor een online check voldoende. Ik hoop dat je hiermee wel het gewenste resultaat krijgt.
PHP:
<?php
function check_online($url){
	if(!filter_var($url, FILTER_VALIDATE_URL)){
        return 'Bad url';
    }
	else{
		$server_header = get_headers($url, 1);
		$http_status = $server_header[0];
		$http_server = $server_header['Server'];
		// Check if we got a header response
		if($http_status != 'HTTP/1.1 200 OK'){
			// SERVER IS OFFLINE AND NO REVERSE PROXY (NGINX) FOUND
			return 'Server offline';
		}
		else if($http_server == 'nginx'){
			// SERVER IS OFFLINE - NGINX IS REDIRECTING ME BACK
			return 'Server offline';
		}
		else{
			return 'Server online';
		}
	}
}

// Controleer voor aanvraag
$posturl = 'Geen';
if(isset($_GET['url']) and !empty($_GET['url'])){
    $posturl = urldecode($_GET['url']);
}
?>

<html>
    <head>
        <title>Check URL</title>
    </head>
    <body>
        <table>
            <thead>
                <tr>
                    <th>Opgevraagde URL</th>
                    <th>Status URL</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><?php echo $posturl; ?></td>
                    <td><?php if($posturl != 'Geen'){ echo check_online($posturl); } ?></td>
                </tr>
            </tbody>
        </table>
        <hr/>
        <div id="form">
            <ul>
                <li>
                    <a href="?url=<?php echo urlencode('http://google.nl'); ?>"> http://google.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://ikbestaniet.nl'); ?>"> http://ikbestaniet.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://helpmij.nl'); ?>"> http://helpmij.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://qwsderfgtredf.nl'); ?>"> http://qwsderfgtredf.nl </a>
                </li>
            </ul>
        </div>
    </body>
</html>
 
Bedankt, alleen zegt hij dat google.nl, michaelwijnands.nl (een andere website van mij) offline zijn. Hij zegt alleen dat helpmij.nl online is. Ik heb zelf gecontroleerd, maar michaelwijnands.nl en google.nl zijn op het moment gewoon online.
 
bijde websites zijn ook offline. Er zit daar een .htaccess 301 moved script

google.nl = HTTP/1.0 301 Moved Permanently -> www.google.nl
michaelwijnands.nl HTTP/1.1 301 Moved Permanently -> www.michaelwijnands.nl

hieronder een aanpassing die de code weergeeft wanneer hij offline is. Je kan je code dan eventueel aanpassen dat hij bijv 301 ook als online ziet.
PHP:
<?php
function check_online($url){
    if(!filter_var($url, FILTER_VALIDATE_URL)){
        return 'Bad url';
    }
    else{
        $server_header = get_headers($url, 1);
        $http_status = $server_header[0];
        $http_server = $server_header['Server'];
        // Check if we got a header response
        if($http_status != 'HTTP/1.1 200 OK'){
            // SERVER IS OFFLINE AND NO REVERSE PROXY (NGINX) FOUND
            return 'Server offline STATUS:'.$http_status;
        }
        else if($http_server == 'nginx'){
            // SERVER IS OFFLINE - NGINX IS REDIRECTING ME BACK
            return 'Server offline';
        }
        else{
            return 'Server online';
        }
    }
}
 
// Controleer voor aanvraag
$posturl = 'Geen';
if(isset($_GET['url']) and !empty($_GET['url'])){
    $posturl = urldecode($_GET['url']);
}
?>
 
<html>
    <head>
        <title>Check URL</title>
    </head>
    <body>
        <table>
            <thead>
                <tr>
                    <th>Opgevraagde URL</th>
                    <th>Status URL</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><?php echo $posturl; ?></td>
                    <td><?php if($posturl != 'Geen'){ echo check_online($posturl); } ?></td>
                </tr>
            </tbody>
        </table>
        <hr/>
        <div id="form">
            <ul>
                <li>
                    <a href="?url=<?php echo urlencode('http://google.nl'); ?>"> http://google.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://ikbestaniet.nl'); ?>"> http://ikbestaniet.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://helpmij.nl'); ?>"> http://helpmij.nl </a>
                </li>
                <li>
                    <a href="?url=<?php echo urlencode('http://qwsderfgtredf.nl'); ?>"> http://qwsderfgtredf.nl </a>
                </li>
            </ul>
        </div>
    </body>
</html>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan