|
|
|
| Доброго вермени суток! Дело такое, Нужно написать скрипт который проверяет сервер на доступность. При проверке результат должен заноситься в базу(в обоих случаях). Также должна быть функция "времени отклика". Если сервер не отвечает в течении 5 секунд(например), то значит он недоступен(потому что можно ждать вечно). Также должна быть функция которая показывает, сколько времени не работал сервер(если не работал). Кое что уже написал:
<?php
/**
* @author digidie
* @copyright 2012
*/
ini_set('display_errors',0);
// Создаем новый класс:
class Cheked {
// данные (свойства):
// методы:
public function printPage($array) {
echo "
<html>
<head>
<title>Верстка макета</title>
<link rel='stylesheet' type='text/css' href='template.css'>
<link href='http://fonts.googleapis.com/css?family=Patua+One' rel='stylesheet' type='text/css'>
</head>
<body>
<div id='header'></div>
<div id='wrapper'>А это как бы середина!!!!
<div class='table'>
<table cellpadding='0'>
<tr>
<th>№</th>
<th>Сервер</th>
<th>IP</th>
<th>Порт</th>
<th>Состояние</th>
</tr> ";
for ($i = 0; $i < count($array); $i++)
{
echo "<tr>
<td>". ($i + 1) ."</td>
<td>". $array['address'][$i] ."</td>
<td>". $array['ip'][$i] ."</td>
<td>". $array['port'][$i] ."</td>
<td>". $this->isOnline(array($array['ip'][$i],$array['port'][$i],$array['address'][$i])) ."</td>
</tr>";
}
echo "</table>
</div>
<form action='view.index.html' method='post' name='form1'>
<input class='button' type='submit' name='submit' value='Статистика'>
</form>
</div>
<div id='footer'>Это как бы футер!!!!</div>
</body>
</html>
";
}
public function database() {//Функция соединения с базой
$db = mysql_connect("localhost","nikita","111111");
mysql_select_db("cheked",$db);
}
public function databaseInsert($ip,$port,$address) {
$query = "INSERT INTO cheked (ip,port,address) VALUES ('".$ip."','".$port."','".$address."')";
$res = @mysql_query($query);
}
public function isOnline($array) {//функция проверки онлайн/офлайн
$host = $array[0];
$port = $array[1];
$address = $array[2];
$path = "/404.html";
$port = 80;
$fp = fsockopen($host,$port,$error,$errstr,'3');
if(!$fp){
echo 'Сервер ', $host, ' не отвечает';
} else {
$this->databaseInsert($host,$port,$address);
fputs ($fp, "HEAD ".$path." HTTP/1.0\r\nHost: ".$host."\r\n\r\n");
$subject = fgets($fp, 1024);
if (preg_match("/http/i", $subject)) { return "<p style='color:green;'>yes</p>"; } else { return "<p style='color:red;'>no</p>"; }
}
}
}
// Создаем объект класса:
$cheked = new Cheked;
$array['ip'][] = "217.29.26.67";
$array['ip'][] = "127.0.0.1";
$array['ip'][] = "92.245.98.210";
$array['address'][] = "geron.bilet.kg";
$array['address'][] = "Localhost";
$array['address'][] = "ATC";
$array['port'][] = "80";
$array['port'][] = "80";
$array['port'][] = "8089";
$cheked->database();
$cheked->databaseInsert();
$cheked->printPage($array);
?>
|
Собственно вопрос в том как лучше реализовать функцию проверки доступности. Затруднение в следующем. После проверки должен быть график(или диаграмма) который сравнивает время работы и время отсутствия работы сервера. Как это сделать ума не приложу))) Сказали нужно двумя массивами определить оси абцисс и ординат, не знаю с чего начать) Подскажите пожалуйста, и если можно по коду советы. Буду очень признателен:-) | |
|
|