[PHP] Server Status Sederhana

Iseng-iseng di sore hari, hasil google dan sedikit modifikasi. Akhirnya jadi aplikasi kecil yang berguna buat saya, dan mungkin berguna juga buat kamu :D Untuk demo-nya, langsung saja meluncur di sini.

+ Apa fungsi dari script ini ?
- Langsung klik link di atas aja yah :))

Nah, saya akan bahas beberapa file yang ada di dalamnya. :) Silakan dikoreksi jika ada kesalahan yah, maklum ini juga hasil google yang di bongkar dikit banget :”> Ada beberapa file di dalamnya, yaitu status.php, index.php, load.php, live.gif, dead.gif.

File inti dari fungsi status ada pada status.php dan load.php. Berikut adalah file status.php :

<?php
//Web Server Status v 1.4, Copyright 2002 By Ryan Schwiebert, visit http://www.schwebdesigns.com/
//This script may be freely distributed providing all copyright headers are kept intact. 

//Concept from:
//Abax Server Status v1.04, Copyright 2002 By Nathan Dickman, visit http://www.NathanDickman.com/
//Location of the live or dead server images

//++ Adding Server Loads
//NitrouZ, Kuc3ng

//Please change to your server specifications
$live = "live.gif";
$dead = "dead.gif";
$link = $_GET['link'].":";
$s_link = str_replace("::", ":", $link);
list($addr,$port)= explode (':',"$s_link");
if (empty($port))
{
	$port = 80; // port ini bisa diganti apa pun, tinggal menyesuaikan statement if else di bagian bawah aja :P DIY. Default, 80.
} 

$churl = @fsockopen(server($addr), $port, $errno, $errstr, 5); // default time out 20s, di setting 5 biar ndak keduluan server timeout :D
$up = false;

if ($churl)
{

    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: $addr\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($churl, $out);
    $status = trim(fgets($churl,128));

    $up = $status=='HTTP/1.1 200 OK' ? true : false;
    fclose($churl);
}

if ($up)
{
	header("Location: $live");
	exit();
}
else
{
	header("Location: $dead");
	exit();
}
function server($addr)
{
         if(strstr($addr,"/")){$addr = substr($addr, 0, strpos($addr, "/"));}
         return $addr;
}

?>

Fungsi dari status.php adalah melakukan cek pada port 80 situs yang dituju. Pastikan cURL pada webserver Anda aktif untuk menjalankan fungsi ini. Lalu yang kedua adalah file load.php :

<?php
//GET SERVER LOADS
$loadresult = @exec('uptime');
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/",$loadresult,$avgs);

//GET SERVER UPTIME
$uptime = explode(' up ', $loadresult);
$uptime = explode(',', $uptime[1]);
$uptime = $uptime[0].', '.$uptime[1];
$data .= "Server Load Averages $avgs[1], $avgs[2], $avgs[3]</br>";
$data .= "Server Uptime $uptime</br>";

?>

Fungsi dari file load.php adalah optional, Anda bisa meniadakan bila tidak diperlukan :) Hanya sebagai bumbu manis saja biar terlihat cantik saat di load :D Untuk selanjutnya, silakan di explorasi sendiri. Untuk scriptnya, silakan download di sini.

Thanks to : kucing, dracoola, drubicza, [4NV|E] and YOU.

10 Responses to [PHP] Server Status Sederhana

  1. gagahput3ra March 25, 2009 at 19:13 #

    Wogh, tipsnya keren…ijin bookmark! :D

  2. NitrouZ March 25, 2009 at 22:16 #

    #1, maaf masih sering di revisi. :D karena emang sederhana banget :P

  3. Cak Rohman March 26, 2009 at 16:31 #

    baca2 biar mengerti banyak tentang PHP

  4. Agung Mojosari March 26, 2009 at 22:01 #

    Wah, keren nih scriptnya…. tapi ada backdoor nya gak nih? ;))
    thanks for sharing ^^

  5. NitrouZ March 27, 2009 at 23:39 #

    #4,
    wew… backdoor apaan ya mas ? :-ss

  6. wakakakakaka April 2, 2009 at 10:51 #

    sumpeeeeeeeeeeeeeeeeeeeeeh wuasiiiiiiiiiiik tenan

  7. kutuaer September 4, 2009 at 3:33 #

    ijin di icep ya cintah..
    mo dicobain di blog gw ..

  8. kutuaer September 4, 2009 at 3:47 #

    masih acakadul di page gw :D
    (mysite)/status .. cek dong

  9. NitrouZ September 6, 2009 at 14:30 #

    @kutuaer,
    hihi.. kena rules nya hosting mungkin :D

  10. ries February 15, 2010 at 15:19 #

    keren mas… thanks

Leave a Reply

Follow @draskolnikova