Мониторинг игрового сервера

454
03 февраля 2017, 07:24

Нужен простой скрипт php скрипт для вывода информации с игрового сервера типа:

Сервер: 46.38.56.3:27015

Название: Army Ranks 1.3

Карта: cs_assault

Игроков: 19/24

Статус: On-line

В интернете куча есть но я не понимаю что в них не так прописано так как все они не выводят информацию ( Может кто помочь? п.с. только мне для другой игры. тоже их valve

<?php 
 
$server = '46.38.56.3'; 
$port   = '27015'; 
 
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;  
} 
 
$serv = GetServerInfo($server,$port); 
 
if ($serv) { 
echo ' 
Сервер: '.$server.':'.$port.' 
<br> 
Название: '.$serv['name'].' 
<br> 
Карта: '.$serv['map'].' 
<br> 
Игроков: '.$serv['current'].'/'.$serv['max'].' 
<br> 
Статус: On-line 
'; 
} else { 
echo 'Статус: Off-line'; 
} 
 
?>

Answer 1

У вас GetServerInfo возвращает false, т.к. if (!$fp) return false;

READ ALSO
PHPExcel ошибка communication failure

PHPExcel ошибка communication failure

Как в phpexcel можно сослаться на определенный лист, чтобы использовать в формуле данные с него =СУММ('Part2'!P25:P29), то есть 'Part2' заменить?

365
Работа с MySQL в PHP

Работа с MySQL в PHP

Если я использую класс для работы с БД, я создаю новый объект этого класса, из которого вызываю функцию для выполнения запроса, я подключаюсь...

394
Парсинг сложных прайс-листов xls

Парсинг сложных прайс-листов xls

Товарищи, нужна помощь! Кто-нибудь сталкивался с парсингом прайс-листов в xls? Интересует сам алгоритм и некоторые нюансыХотя бы понять в какую...

421
Вывод данных из связанных таблиц в yii2

Вывод данных из связанных таблиц в yii2

В БД есть три таблицы, свзянанные внешними ключами

938