This is script which checks if server is on/off
$ip = "xxxxxxxx";
$port = "xxx";
$fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1);
socket_set_timeout($fp, 000002);
if (!$fp)
{
echo "OFFLINE";
}
else
{
echo "ONLINE";
}
@fclose($fp);
mysql table
id | ip | port | online_status |
1 | ip1 | port1 | |
2 | ip2 | port2 | |
3 | ip3 | port3 | |
4 | ip4 | port4 | |
5 | ip5 | port5 | |
I need to check every server if it's on/off at the same time and write in the table.
How can i do that?
$servers = $db->getArray("SELECT * FROM servers");
Try looping through the array and attempting to connect to each server. This will tell you if you can connect to the server. Then, update your table to contain the status.
/* Loop through the servers */
foreach($servers as $server)
{
$id = $server['id'];
$ip = $server['ip'];
$port = $server['port'];
/* Try to connect to this particular server */
$fp = @fsocketopen("udp://$ip", $port, $errno, $errstr, 1);
socket_set_timeout($fp, 000002);
$status = '';
/* Determine the status of the server */
if(!$fp)
{
$status = 'OFFLINE';
}
else
{
$status = 'ONLINE';
}
/* Close our connection */
@fclose($fp);
/* Update the servers table to show the status of the server */
$db->Update("UPDATE servers SET online_status='$status' WHERE id='$id'");
}