检查服务器状态 - online/offline
Checking server status - online/offline
我有一个循环显示来自数据库的许多不同服务器的信息。
现在我正在尝试写他们是在线还是离线。
我试图手动将 ip 地址和端口写入 srcipt,它工作正常。但是,当我尝试将 table 放入变量时,它显示所有都处于离线状态。他们中的大多数使用 44405 端口,所以我暂时手动输入以检查它。
编辑:是的,我知道这个 mysql 代码已经准备好等待注入 :D
<?php //-----loading servers to website-----
error_reporting(E_ALL);
ini_set('display_errors','1');
$connection = //deleted this part coz includes personal info :D
$alldata = mysql_query("SELECT * FROM muonline ORDER BY id DESC;");
while ($loadservers = mysql_fetch_assoc($alldata)) {
echo "<tr>";
echo '<td>'; //-----here starts the online/offline part of script-----
$serwer = $loadservers['serverAddress'];
$port="44405";
$socket=@fsockopen($serwer,$port,$errno,$errstr,2);
if($socket==true)
{
echo "<p>online</p>";
}else{
echo "<p>offline</p>";
}
echo '</td>';
//------- here is being loaded rest of info of the each server-----
echo "<td><p>" .$loadservers['serverName']."</p></td>";
echo "<td><p>". '<a href="' .$loadservers['serverAddress'].'"target="_blank"><p>'.$loadservers['serverAddress']. "</p></a>". "</td>";
echo "<td><p>" .$loadservers['serverExp']. "</p></td>";
echo "<td><p>" .$loadservers['serverDrop']. "</p></td>";
echo "<td><p>" .$loadservers['info']. "</p></td>";
echo "</tr>";
}
mysql_close();
?>
您正在尝试将 fsockopen
与以 http://
开头的服务器一起使用。您需要使用 parse_url
解析 URL,提取 URL 的 host
部分并使用它进行检查。像这样:
$parsedUrl = parse_url($loadservers['serverAddress']);
$socket = fsockopen($parsedUrl['host'],$port,$errno,$errstr,2);
我有一个循环显示来自数据库的许多不同服务器的信息。 现在我正在尝试写他们是在线还是离线。 我试图手动将 ip 地址和端口写入 srcipt,它工作正常。但是,当我尝试将 table 放入变量时,它显示所有都处于离线状态。他们中的大多数使用 44405 端口,所以我暂时手动输入以检查它。
编辑:是的,我知道这个 mysql 代码已经准备好等待注入 :D
<?php //-----loading servers to website-----
error_reporting(E_ALL);
ini_set('display_errors','1');
$connection = //deleted this part coz includes personal info :D
$alldata = mysql_query("SELECT * FROM muonline ORDER BY id DESC;");
while ($loadservers = mysql_fetch_assoc($alldata)) {
echo "<tr>";
echo '<td>'; //-----here starts the online/offline part of script-----
$serwer = $loadservers['serverAddress'];
$port="44405";
$socket=@fsockopen($serwer,$port,$errno,$errstr,2);
if($socket==true)
{
echo "<p>online</p>";
}else{
echo "<p>offline</p>";
}
echo '</td>';
//------- here is being loaded rest of info of the each server-----
echo "<td><p>" .$loadservers['serverName']."</p></td>";
echo "<td><p>". '<a href="' .$loadservers['serverAddress'].'"target="_blank"><p>'.$loadservers['serverAddress']. "</p></a>". "</td>";
echo "<td><p>" .$loadservers['serverExp']. "</p></td>";
echo "<td><p>" .$loadservers['serverDrop']. "</p></td>";
echo "<td><p>" .$loadservers['info']. "</p></td>";
echo "</tr>";
}
mysql_close();
?>
您正在尝试将 fsockopen
与以 http://
开头的服务器一起使用。您需要使用 parse_url
解析 URL,提取 URL 的 host
部分并使用它进行检查。像这样:
$parsedUrl = parse_url($loadservers['serverAddress']);
$socket = fsockopen($parsedUrl['host'],$port,$errno,$errstr,2);