【发布时间】:2023-12-23 01:26:01
【问题描述】:
我希望我缺少关于 apache/php 的一个怪癖。
代码:
<?php
$servers = array(
array("70.89.xxx.226",25565,''),
array("50.22.xxx.147",25591,''),
);
foreach($servers as $key=>$server){
$fp = @fsockopen($server[0],$server[1],$errno,$errstr,.5);
if(!$fp) {
$servers[$key][2] = "DOWN";
} else {
$servers[$key][2] = "UP";
@fclose($fp);
}
unset($fp);
}
echo"
<table>
<thead>
<td>Minecraft Server Status</td>
</thead>";
foreach ($servers as $key=>$server){
$keyplus = $key + 1;
echo"
<tr>
<td>Server $keyplus: $server[0]:$server[1]</td>
<td>$server[2]</td>
</tr>";
}
echo "
</table>";
?>
它的作用:使用 fsockopen 函数检查与各种我的世界服务器的连接。
问题:这段代码在我的本地和远程网络服务器上都完成了它应该做的事情。但是,在我的远程服务器上,即使我知道它们已启动,状态也始终显示为 DOWN,它们在我的本地服务器上也显示为 UP。我不知道为什么我的主机无法访问这些服务器,所以我希望这是我不知道的服务器怪癖。
您可以如何提供帮助:也许还有另一种方法可以在我可以使用的 php 中有效地 ping 一个 IP?或者您可能知道影响我的连接的服务器设置。
感谢您的阅读和您的时间 ~TylerTofWA
【问题讨论】:
-
在您的远程服务器上,尝试使用 telnet 访问这些端口上的服务器。我怀疑您会发现由于防火墙/过滤而无法访问它们。
标签: php apache local fsockopen