我有一个简单的脚本来检查服务器是在线还是离线,但是这个脚本似乎不适用于我想要的服务器。
这是脚本:
$value = mysql_result($result,$i,"servername");
$value2 = mysql_result($result,$i,"serveraddress");
$value3 = mysql_result($result,$i,"portnumber");
$value4 = mysql_result($result,$i,"description");
$id = mysql_result($result,$i,"id");
ob_start();
if (!$socket = @fsockopen($value2, $value3, $errno, $errstr, 1))
{
echo " <font color='red'><CENTRE><strong>OFFLINE</strong></CENTRE></font>";
}
else
{
echo " <font color='green'><CENTRE><strong>ONLINE</strong></CENTRE></font>";
fclose($socket);
}
$status = ob_get_contents();
ob_end_clean();
?>
问题是,如果我说使用谷歌地址和端口 80,它会显示谷歌的在线,如果我使用外部 IP 地址和像 7000 这样的端口,它不会显示服务器是否在线,尽管它在线。我不确定为什么会这样,我认为这可能是因为在显示端口已关闭时没有数据通过端口发送。
有人可以对此有所了解,也许可以纠正这种情况。