检查游戏服务器是否在线的PHP代码

检查游戏服务器是否在线的PHP代码,php,sockets,server,Php,Sockets,Server,我正试图在我的网站上为我的游戏服务器发送一条状态消息。如果它是在线的,它应该说“在线”之类的 这是我目前的代码: <?php $site = '217.78.24.5'; $port = '28728'; $check = fsockopen( "$site", "$port", $errno, $errstr, 6 ); if ( ! $check ){ echo 'Offline'; } else{ echo 'Online (YAY)';} ?> 但出于某种原因,它一直在

我正试图在我的网站上为我的游戏服务器发送一条状态消息。如果它是在线的,它应该说“在线”之类的

这是我目前的代码:

<?php
$site = '217.78.24.5';
$port = '28728';
$check = fsockopen( "$site", "$port", $errno, $errstr, 6 );
if ( ! $check ){ echo 'Offline';
}
else{ echo 'Online (YAY)';}
?>

但出于某种原因,它一直在离线告诉我。

游戏是CS:GO,如果有问题的话

您的问题将出现在$errno和$errstr中,请编辑您的代码:

$debug = true;
$site = '217.78.24.5';
$port = '28728';
$check = fsockopen( $site, $port, $errno, $errstr, 6 );
if ( ! $check ) {
   if($debug){
      echo "Error #$errno : $errstr <br>";
   } 
   echo 'Offline';     
}
else { 
   echo 'Online (YAY)';
}
$debug=true;
$site='217.78.24.5';
$port='28728';
$check=fsockopen($site,$port,$errno,$errstr,6);
如果(!$支票){
如果($debug){
回显“Error#$errno:$errstr
”; } 回声“离线”; } 否则{ echo“在线(YAY)”; }
如果你看到:

错误#13:权限被拒绝


这可能是你的防火墙。

试试
fsockopen($site,$port)并且不要忘记关闭套接字“Error#110:Connection timed out”是我得到的:/fsockopen的最后一个参数。尝试更改6 60秒。仍然是相同的错误,但现在页面加载也需要很长时间:P