Функция мониторинга PHP

artyrka94

Участник
Сообщения
181
Реакции
38
В сети нашел функцию:

PHP:
function GetServerInfo($server,$port) { 
     $fp = @fsockopen("udp://".$server, $port); 
     if (!$fp) return false;

     @fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10)); 
     $start=time(); 
     socket_set_timeout($fp,1); 
     $st=fread($fp,1); 
     $r=socket_get_status($fp); 
     $result['status'] = $r["timed_out"];
     $r=$r["unread_bytes"]; 
     if ($r == 0) { @fclose($fp); return false;} 
     $st.=fread($fp,$r); 
     @fclose($fp);

     $st=substr($st,5); 
     $address=SubStr($st,0,StrPos($st,chr(0))); 
     $address=str_replace(chr(0),"|",$address); 
     $st=SubStr($st,StrPos($st,chr(0))+1);  
     $map=SubStr($st,0,StrPos($st,chr(0))); 
	 $st=SubStr($st,StrPos($st,chr(0))+1); 
     $name=SubStr($st,0,StrPos($st,chr(0)));
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $current=ord(SubStr($st,0,1)); 
     $max=ord(SubStr($st,1,1));

     if ($map == "") return false; 
     $result['map'] = $map; 
     $result['name']= $name; 
     $result['current'] = $current; 
     $result['max'] = $max;
	 $result['ip'] = $server;
	 $result['port'] = $port;

     return $result; 
}

Как сделать что бы она могла возвращать дополнительно имя сервера (hostname)?
 
Сверху Снизу