1

我一直在篡改脚本时遇到问题。

我正在尝试为我的游戏服务器制作一个在线检查器,这样我就可以从我的网站上指出我的服务器是在线还是关闭。这是我的代码:

<?php
if (!$socket = @fsockopen(IP, Port, $errno, $errstr, 2))
{
  echo "<center><img style='float:left;' src='images/offline_icon.png'><font style='float:left;' size='5' color='red'><strong>Offline!</strong></font></center>";
}
else 
{
  echo "<center><img style='float:left;' src='images/online_icon.png'><font style='float:left;' size='5' color='green'><strong>Online!</strong></font></center>";
  fclose($socket);
}
?>

我的问题是,它失败了。如果我将超时设置为 30,它将等待 30 秒,然后将其标记为离线并继续。

但是,如果我在终端中 ping IP,它就可以正常工作。

在搜索了有关 ping 和端口的信息后,似乎它可能是问题所在。

有没有办法在没有端口的情况下对 IP 执行正常 ping?喜欢linux命令行?

4

1 回答 1

3

ICMP 不使用端口。

您可能希望使用exec()ping 服务器。签出:使用 PHP ping IP 地址并回显结果

于 2013-03-05T19:23:27.697 回答