Hello,
Het onderstaande script heb ik met pijn en moeite draaiend weten te krijgen. Echter als de te scannen server fysiek offline is (hij staat dus helemaal uit) duurt het 30 seconden voordat hij klaar is met scannen.
Wat moet ik aanpassen om dit te verkorten naar pakweg 2 a 5 seconden ?
<?php
set_time_limit(0);
$s_port = 12203; // Serverport
$s_ip = "82.217.212.106"; // Server-IP
$timeout = 2;
// CONN WRITE READ [1]
$s_con = fsockopen("udp://".$s_ip, $s_port,$errno, $errstr, $timeout);
// $s_con == false if fsockopen failed
if(!$s_con)
die(msg_server('Unable to connect with fsockopen [1];; '.$errstr));
// fwrite return false on write error, else it return how many bytes written
if(fwrite($s_con, "ÿÿÿÿ". chr (0x02). "getstatus". chr (0x00))===FALSE)
die(msg_server('Unable to write to $_con [1]'));
// fread return false on read error, else it return the read string
if(($ffb = fread($s_con,4))===FALSE)
die(msg_server('Unable to read from $_con after write. [1]'));
// stream_get_meta_data is same as socket_get_status
$meta_data = stream_get_meta_data($s_con);
if($meta_data["unread_bytes"]==0)
die(msg_server('server DOWN'));
$beginnen = fread($s_con, $meta_data['unread_bytes']);
fclose($s_con);
$data = explode("\n", $beginnen);
// Serverinfo
// CONN WRITE READ [2]
$s_con = fsockopen("udp://".$s_ip, $s_port,$errno, $errstr, $timeout);
if(!$s_con)
die(msg_server('Unable to connect with fsockopen [2];; '.$errstr));
if(fwrite($s_con, "ÿÿÿÿ". chr (0x02). "getstatus". chr (0x00))===FALSE)
die(msg_server('Unable to write to $_con [2]'));
// bytes lezen en verbindingsopbouw
if(($ffb = fread($s_con,4))===FALSE)
die(msg_server('Unable to read from $_con after write. [2]'));
$meta_data = stream_get_meta_data($s_con);
if($meta_data["unread_bytes"] == 0)
die(msg_server('No data, sorry. ('.$ffb.')'));
$beginnen = fread($s_con, $meta_data['unread_bytes']);
fclose($s_con);
msg_server('server ACTIEF');
function msg_server($server_status,$errmsg=''){
echo "
<div class='scanner' id='hoofd'>
<div class='picture'><img src='sc-moh.gif' alt='1' /></div>
<div class='status'>$server_status</div>
</div>";
}
?>
319 views