> 0.2
FF >> 00
255 >> 0
0.2-0.1
*/
//Grün: #00FF00
//Gelb: #FFFF00
//Rot: #FF0000
/*
WENN ping < 50
DANN echo 'grün';
SONST
WENN ping > 200
DANN echo 'rot';
SONST
WENN ping >=50 UND < 100
DANN echo dechex(((ping-50*2)/100)*255) . "FF00";
SONST
WENN ping >= 100
DANN echo "FF" . 255-((ping-100)/100*255)
DANN echo "FF" . dechex(255-(ping/100)*255) . "00";
50ms: #00FF00
100ms: #FFFF00
200ms: #FF0000
if(!$ping) echo "No Connection";
else if($ping < 0.1) echo "".round($ping, 3) * 1000 ."ms";
else if($ping < 0.15) echo "".round($ping, 3) * 1000 ."ms";
else echo "".round($ping, 3) * 1000 ."ms";break;
*/
if(isset($_GET["ip"]) && isset($_GET["action"])){
header("Expires: Mon, 10 Jan 1970 01:01:01 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
$ip = $_GET["ip"];// $action = $_GET["action"];
function port($ziel,$port){ if(fsockopen("tcp://".$ziel,$port,$errno,$errstr,"1"))return true; else return false; }
$on = "Online"; $off = "Offline";
switch ($action = $_GET["action"]) {
case 0:
function ping($host) {
$package = "\x08\x00\x19\x2f\x00\x00\x00\x00\x70\x69\x6e\x67";
$socket = socket_create(AF_INET, SOCK_RAW, 1);
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 1, "usec" => 0));
socket_connect($socket, $host, null);
list($start_usec, $start_sec) = explode(" ", microtime());
$start_time = ((float) $start_usec + (float) $start_sec);
socket_send($socket, $package, strlen($package), 0);
if(@socket_read($socket, 255)) {
list($end_usec, $end_sec) = explode(" ", microtime());
$end_time = ((float) $end_usec + (float) $end_sec);
$total_time = $end_time - $start_time;
return $total_time;
} else { return false; } socket_close($socket); }
$ping = @ping($ip);
//$ping = 0.04;
$pingstring = "\">".round($ping, 3) * 1000 ."ms";
echo "No Connection";
else if($ping < 0.05) $ausgabe = "#00FF00$pingstring";
else if($ping > 0.2) $ausgabe = "#FF0000$pingstring";
else if($ping >= 0.05 && $ping < 0.1){
$ausgabe = dechex((($ping - 0.05)*20)*255) . "FF00$pingstring";
if(((($ping - 0.05)*20)*255) <= 15) $ausgabe = "#0" . $ausgabe;
else $ausgabe = "#" . $ausgabe;
}
else {
$ausgabe = dechex((0.2-$ping)*2550) . "0$pingstring";
if(((0.2-$ping)*2550) <= 15) $ausgabe = "#FF0" . $ausgabe;
else $ausgabe = $ausgabe = "#FF" . $ausgabe;
}
echo $ausgabe;
break;
case 1: //Apache
if(@port($ip, 80))echo $on;else echo $off;break;
case 2: //Login Server
if(@port($ip, 9010))echo $on;else echo $off;break;
case 3: //World Server
if(@port($ip, 9110))echo $on;else echo $off;break;
case 4: //Zone 1
if(@port($ip, 9120))echo $on;else echo $off;break;
case 5: //Zone 2
if(@port($ip, 9122))echo $on;else echo $off;break;
case 6: //Zone 3
if(@port($ip, 9124))echo $on;else echo $off;break;
case 7: //FTP
if(@port($ip, 21))echo $on;else echo $off;break;
case 8: //How many people are playing?
include 'settings.php';
if(@mssql_connect( $servername . "\\" . $dbname , $dbuser, $dbpass ) != false) $online = mssql_fetch_row(mssql_query("SELECT TOP 1 nCount FROM StatisticsData..tSameTimeChar ORDER BY nIndex DESC"));
if($online[0] > -1)echo $online[0]; else echo 0; break;
}} ?>