【问题标题】:Pinging a server in php without the port?在没有端口的情况下在php中ping服务器?
【发布时间】:2013-03-05 19:14:58
【问题描述】:

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

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

<?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命令行吗?

【问题讨论】:

  • 游戏服务器是否也在运行网络服务器?如果是这样,您可以使用一个小的 html 文件来确定它是否还活着吗? file_get_contents('http://www.example.com/alive.html'); 失败时返回 false。
  • 游戏服务器远程托管。我已经知道这是可能的:(
  • 尝试使用80端口,这是http://使用的端口。
  • 我知道,但是服务器没有托管任何网络服务器。
  • 我不知道这是否有效,但试试这个功能(使用socket_create):php.net/manual/en/function.socket-create.php#101012

标签: php ping


【解决方案1】:

ICMP 不使用端口。

您可能想使用exec() ping 服务器。签出:Pinging an IP address using PHP and echoing the result

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 2016-12-03
    • 2021-09-03
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多