-
-
Save theel0ja/a2d3dc88ed36c94d201cb02d536880a9 to your computer and use it in GitHub Desktop.
Network Status Monitor (Convert colour indications in image to percentages) for www.elisaip.net/utilization.shtml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Get coords | |
function GetCoords() { | |
$coords = array(); | |
// Non IATA: | |
// Espoo -> ESP | |
$coords["HEL2_to_TLL1"] = array(x => 405, y => 286); | |
$coords["HEL2_to_FRA1"] = array(x => 329, y => 240); | |
$coords["HEL2_to_ARN4"] = array(x => 345, y => 162); | |
$coords["HEL2_to_AS719"] = array(x => 413, y => 229); | |
$coords["HEL2_to_LED"] = array(x => 369, y => 346); | |
$coords["FRA1_to_HEL2"] = array(x => 325, y => 273); | |
$coords["TLL1_to_HEL2"] = array(x => 406, y => 338); | |
$coords["ARN4_to_HEL2"] = array(x => 343, y => 119); | |
$coords["AS719_to_HEL2"] = array(x => 420, y => 266); | |
$coords["LED_to_HEL2"] = array(x => 370, y => 386); | |
$coords["ESP1_to_AMS1"] = array(x => 402, y => 138); | |
$coords["ESP1_to_ARN1"] = array(x => 464, y => 100); | |
$coords["ESP1_to_AS719"] = array(x => 513, y => 176); | |
$coords["ESP1_to_TLL2"] = array(x => 535, y => 225); | |
$coords["AMS1_to_ESP1"] = array(x => 187, y => 152); | |
$coords["ARN1_to_ESP1"] = array(x => 376, y => 55); | |
$coords["AS719_to_ESP1"] = array(x => 510, y => 242); | |
$coords["TLL2_to_ESP1"] = array(x => 534, y => 305); | |
$coords["ARN1_to_AMS1"] = array(x => 244, y => 50); | |
$coords["ARN1_to_ARN4"] = array(x => 285, y => 43); | |
$coords["AMS1_to_ARN1"] = array(x => 196, y => 106); | |
$coords["ARN4_to_ARN1"] = array(x => 314, y => 62); | |
$coords["AMS2_to_AMS1"] = array(x => 101, y => 221); | |
$coords["AMS1_to_AMS2"] = array(x => 102, y => 202); | |
$coords["LHR_to_AMS2"] = array(x => 77, y => 316); | |
$coords["AMS2_to_LHR"] = array(x => 77, y => 298); | |
$coords["LHR_to_FRA1"] = array(x => 144, y => 324); | |
$coords["FRA1_to_LHR"] = array(x => 167, y => 321); | |
$coords["FRA2_to_FRA1"] = array(x => 202, y => 369); | |
$coords["FRA1_to_FRA2"] = array(x => 219, y => 341); | |
$coords["FRA1_to_AMS1"] = array(x => 208, y => 240); | |
$coords["AMS1_to_FRA1"] = array(x => 193, y => 218); | |
$coords["FRA2_to_TLL1"] = array(x => 277, y => 404); | |
$coords["TLL1_to_FRA2"] = array(x => 306, y => 403); | |
return $coords; | |
} | |
// Analyze the requested pixel | |
function NetworkUtilization($x, $y) { | |
$imageFile = file_get_contents("http://www.elisaip.net/pics/intbone.png"); | |
$image = imagecreatefromstring($imageFile); | |
$rgb = imagecolorat($image,$x,$y); | |
$r = ($rgb >> 16) & 0xFF; | |
$g = ($rgb >> 8) & 0xFF; | |
$b = $rgb & 0xFF; | |
$color = $r.$g.$b; | |
// Is the link up? | |
if($color != "0" . "0". "0") { | |
// Link is up | |
$linkstate = true; | |
} else { | |
// Link is down | |
$linkstate = false; | |
} | |
// Get utilization | |
if($color == "200" . "255". "200") { | |
$util = 0; | |
} elseif($color == "100" . "255". "100") { | |
$util = 10; | |
} elseif($color == "0" . "255". "0") { | |
$util = 20; | |
} elseif($color == "50" . "255" . "50") { | |
$util = 30; | |
} elseif($color == "50" . "180". "50") { | |
$util = 40; | |
} elseif($color == "100" . "150". "0") { | |
$util = 50; | |
} elseif($color == "255" . "255". "102") { | |
$util = 60; | |
} elseif($color == "255" . "204". "102") { | |
$util = 70; | |
} elseif($color == "255" . "153". "51") { | |
$util = 80; | |
} elseif($color == "255" . "101". "51") { | |
$util = 90; | |
} elseif($color == "255" . "0". "0") { | |
$util = 100; | |
} else { | |
$util = undefined; | |
} | |
$status = array(); | |
$status["state"] = $linkstate; | |
$status["utilization"] = $util; | |
return $status; | |
} | |
// Get everything using predefined pixel locations in a array | |
function Data() { | |
$coords = GetCoords(); | |
foreach($coords as $name => $coord) { | |
$data[$name] = NetworkUtilization($coord["x"], $coord["y"]); | |
} | |
return $data; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once("functions.php"); | |
$data = Data(); | |
foreach($data as $name => $data) { | |
echo "<b>{$name}</b><br>State: {$data['state']}<br> Utilization: {$data['utilization']}%"; | |
echo "<br><br>"; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once("functions.php"); | |
$data = Data(); | |
header('Content-Type: application/json'); | |
echo json_encode($data); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment