Мониторинг своего сервера для сайта

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
18
Реакции
0
Доброго времени всем суток дорогие друзья! Помогите пожалуйста решить проблему, нашел один php скрипт для вывода онлайн своего сервера на сайт, он прекрасно работает, но вот проблема у меня два сервера, и когда ввожу два раза этот скрипт на страницу у меня просто слетает эта страница и выдаёт ошибку.

Вот сам скрипт:
<?php
// ****************************
$server = '188.127.241.213'; // Ip адрес Пример: 1.1.128.777 (:D);
$port = '27705'; // Порт адрес Пример: 27015;
// ****************************
// функции ядра можно сказать что оброботка сервера
function GetServerInfo($server,$port) {
$fp = @fsockopen("udp://".$server, $port);
if (!$fp) return false;

fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r");
$start=time();
socket_set_timeout($fp,1);
$st=fread($fp,4);
$r=socket_get_status($fp);
$result['status'] = $r["timed_out"];
$r=$r["unread_bytes"];
if ($r == 0) { @fclose($fp); return false;}
$st.=fread($fp,$r);
@fclose($fp);

$st=substr($st,5);
$address=SubStr($st,0,StrPos($st,chr(0)));
$address=str_replace(chr(0),"|",$address);
$st=SubStr($st,StrPos($st,chr(0))+1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$map=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$current=ord(SubStr($st,0,1));
$max=ord(SubStr($st,1,1));

if ($map == "") return false;
$result['map'] = $map;
$result['name']= $name;
$result['current'] = $current;
$result['max'] = $max;

return $result;
}

$serv = GetServerInfo($server,$port);

if ($serv) {
echo '
<center><img src="img/public.png"> <u><font size="2">'.$server.':'.$port.'</u></font>
<br>
<img src="img/map.png"><font size="2"> '.$serv['name'].'</font>
<br>
<img src="img/players.png"><font size="2"> '.$serv['current'].'/32</font>
<br>
<img src="img/status.png"> <img src="img/online.png"></center>
<br>
';
} else {
echo '<center><img src="img/status.png"> <img src="img/offline.png"></center><br>';
}

Я плохо понимаю в php, но как я понял проблема в том что надо сделать вторые переменные или как я не знаю :D
В общем мне просто нужно чтобы был второй сервер с таким же скриптом. Что нужно изменить для второго скрипта, заранее благодарен!
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
csglock,
Вертикально
1656271388431.png

Код:
<?php
function GetServerInfo($server,$port) {
$fp = @fsockopen("udp://".$server, $port);
if (!$fp) return false;
@fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
$start=time();
socket_set_timeout($fp,1);
$st=fread($fp,1);
$r=socket_get_status($fp);
$result['status'] = $r["timed_out"];
$r=$r["unread_bytes"];
if ($r == 0) { @fclose($fp); return false;}
$st.=fread($fp,$r);
@fclose($fp);
$st=substr($st,5);
$address=SubStr($st,0,StrPos($st,chr(0)));
$address=str_replace(chr(0),"|",$address);
$st=SubStr($st,StrPos($st,chr(0))+1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$map=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$current=ord(SubStr($st,0,1));
$max=ord(SubStr($st,1,1));
if ($map == "") return false;
$result['map'] = $map;
$result['name']= $name;
$result['current'] = $current;
$result['max'] = $max;
return $result;
}
$servers = array(
"188.127.241.213:27705",
"62.122.215.136:27015"
);
foreach($servers as $server)
{
    $ip = explode(":", $server);
    $serv = GetServerInfo($ip[0],$ip[1]);

    if ($serv)
    {
        echo '
        <center><img src="img/public.png"> <u><font size="2"> '.$ip[0].':'.$ip[1].' </u></font>
        <br>
        <img src="img/map.png"><font size="2"> '.$serv['name'].'</font>
        <br>
        <img src="img/players.png"><font size="2"> '.$serv['current'].'/32</font>
        <br>
        <img src="img/status.png"> <img src="img/online.png"></center>
        <br>
        ';
    }
    else
    {
        echo '<center><img src="img/status.png"> <img src="img/offline.png"></center><br>';
    }
}
?>

Горизонтально
1656277903210.png

Код:
<?php
function GetServerInfo($server,$port) {
$fp = @fsockopen("udp://".$server, $port);
if (!$fp) return false;
@fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
$start=time();
socket_set_timeout($fp,1);
$st=fread($fp,1);
$r=socket_get_status($fp);
$result['status'] = $r["timed_out"];
$r=$r["unread_bytes"];
if ($r == 0) { @fclose($fp); return false;}
$st.=fread($fp,$r);
@fclose($fp);
$st=substr($st,5);
$address=SubStr($st,0,StrPos($st,chr(0)));
$address=str_replace(chr(0),"|",$address);
$st=SubStr($st,StrPos($st,chr(0))+1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$map=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$current=ord(SubStr($st,0,1));
$max=ord(SubStr($st,1,1));
if ($map == "") return false;
$result['map'] = $map;
$result['name']= $name;
$result['current'] = $current;
$result['max'] = $max;
return $result;
}

$servers = array(
"188.127.241.213:27705",
"62.122.215.136:27015"
);

echo '<table> <tr>';

foreach($servers as $server)
{
    echo '<td>';

    $ip = explode(":", $server);
    $serv = GetServerInfo($ip[0],$ip[1]);

        if ($serv)
        {
            echo '
            <center><img src="img/public.png"> <u><font size="2"> '.$ip[0].':'.$ip[1].' </u></font>
            <br>
            <img src="img/map.png"><font size="2"> '.$serv['name'].'</font>
            <br>
            <img src="img/players.png"><font size="2"> '.$serv['current'].'/32</font>
            <br>
            <img src="img/status.png"> <img src="img/online.png"></center>
            <br>';
        }
        else
        {
            echo '<center><img src="img/status.png"> <img src="img/offline.png"></center><br>';
        }
    echo '</td>';
}

echo '</tr></table>';

?>

<!--

foreach($arr['transactions'] as $a)
{
    echo '<tr>';

    foreach($a as $key => $value)
    {
        echo "<td>" . $value . "</td>";
    }
   
    echo '</tr>';
}

!>
 
Последнее редактирование:
Сообщения
18
Реакции
0
@stalin_alex,Спасибо большое! Сейчас попробую!
 
Сообщения
18
Реакции
0
stalin_alex, Спасибо БОЛЬШОЕ! Все прекрасно работает! Визуально сейчас только настрою!
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу