Kod:
<?php
function serverStatus($ip, $isIP = true, $port = 44405)
{
/*
* zmienna $port trzyma domyslny port dla serwerow
* zmienna $isIP trzyma informacje o tym czy wartosc
* w zmiennej $ip to host/adres ip
*/
$serverNames = array (
'hefron.no-ip.info:55901' => 'Herfon Mu',
'82.146.225.113:55901' => 'Warka Mu'
);
if($isIP)
{
$tablica['ip'] = $ip;
$tablica['host'] = gethostbyaddr($ip);
}
else
{
$tablica['ip'] = gethostbyname($ip);
$tablica['host'] = $ip;
}
if($fp = @fsockopen($ip, $port, $errno, $errstr, 1) == false)
{
$tablica['status'] = true;
}
else
{
$tablica['status'] = false;
}
$tablica['port'] = $port;
$tablica['name'] = $serverNames[$ip.':'.$port];
return $tablica;
}
# przykład użycia
$s2 = serverStatus('hefron.no-ip.info', false); # pobieramy info z serwera hefron.no-ip.info (HOST) o porcie domyslnym (55901)
$s1 = serverStatus('82.146.225.113', true, '55901'); # pobieramy info z serwera 82.146.225.113 (IP) o porcie 55901 (przeciez nie trzeba bylo go pisac)
# jezeli jako pierwszy parametr podalismy adres ip to jako drugi podajemy true, jezeli natomiast jest to host to jako drugi parametr podajemy false
$status_1 = ($s1['status']) ? 'Online' : 'Offline'; # jezeli status jest 1 to Online
$status_2 = ($s2['status']) ? 'Online' : 'Offline'; # a jezeli 0 to Offline
$color_1 = ($s1['status']) ? 'green' : 'red';
$color_2 = ($s2['status']) ? 'green' : 'red';
echo '<b>'.$s1['name'].':</b> <span style=\"color:'.$color_2.';\">'.$status_1.'</span>';
echo '<br /><br />';
echo '<b>'.$s2['name'].':</b> <span style=\"color:'.$color_1.';\">'.$status_2.'</span>';
# przykład użycia
?>