<?php

    
include('MyFuncations.php');                        //    Include the fuctions that are needed to make this page work.
    
SendHeaders();
    
CheckForToDos();
    
$favicon        =    "/PeaceBow.jpg";
?><!DOCTYPE html><html lang="en"><head>
<title>Daytime Protocol | NetworkStuff . net</title>
    <link rel="shortcut icon"    href="<?php echo $favicon?>"    type="image/x-icon">
    <?php    include('head-for-bootstrap_fa.php');    ?>
    <style>
        body        {    color:black;        font-family:"Trebuchet MS", Arial, Helvetica;    line-height: 1.0;   }
        i            {    /*  color:darkorange;    font-weight:600    */  }
        form        {   margin-block-end: 0em;  }
    </style>
</head>
<body>
<?php    include('header.php');    ?>
<div class="container">
<?php

    $timestamp    
time();
    
$datum        date("Y-m-d (D) H:i:s [U]",$timestamp);

    echo    
"<div class=\"container\">";
    echo    
"<h1>NTP - Port 13</h1>";
    echo    
"<h2>(Daytime Protocol)</h2>";
    echo    
"<div class='card-deck'>";
    echo    
'<div class="card border-info mb-3" style="max-width: 18rem;">
                <div class="card-header bg-transparent border-info"><b>Server</b> : <kbd>'
.$httphost.'</kbd></div>
                <div class="card-body text-info">
                    <h5 class="card-title">'
.$timestamp.'</h5>
                    <p class="card-text">'
.date("Y-m-d (D) H:i:s",$timestamp).'</p>
                </div>
                <div class="card-footer bg-info border-info text-center">time()</div>
            </div>'
;

/* Query a time server
   (C) 1999-09-29, Ralf D. Kloth (QRQ.software) <ralf at qrq.de> */ ## Since modified by me.
    
$server0    "time.nist.gov";    ##    "ut1-wwv.nist.gov";
//    $server0    = "ut1-wwv.nist.gov";    ##    "ut1-wwv.nist.gov";
    
$server        = @$_GET['url'];
    if(
$server=="")                {    $server = @$_SERVER["QUERY_STRING"];    }
    if(
$server=="")                {    $server $server0;    }

    
$timercvd query_time_server($server,13);
    if (!
$timercvd[1]) { # if no error from query_time_server
        
$timevalue $timercvd[0];
//        echo "Time check from time server ",$server," : [<font color=\"red\">",$timevalue,"</font>].<br>\n";
        
echo    '<div class="card border-primary mb-3" style="max-width: 18rem;">
                    <div class="card-header bg-transparent border-primary"><b>Server</b> : <kbd>'
.$server.'</kbd></div>
                    <div class="card-body text-primary">
                        <h5 class="card-title">'
.$timevalue.'</h5>
                        <p class="card-text">'
.$timevalue.'</p>
                    </div>
                    <div class="card-footer bg-primary border-primary text-center">Daytime Protocol</div>
                </div>'
;
    } 
#if (!$timercvd)
    
else {
        echo    
'<div class="card border-danger mb-3" style="max-width: 18rem;">
                    <div class="card-header bg-transparent border-danger"><b>Server</b> : <kbd>'
.$server.'</kbd></div>
                    <div class="card-body text-danger">
                        <h5 class="card-title">Connection FAILED.</h5>
                        <p class="card-text">'
.$timercvd[1].' = '.$timercvd[2].'</p>
                    </div>
                    <div class="card-footer bg-danger border-danger text-center">Daytime Protocol</div>
                </div>'
;
    } 
# else
    
$offset $timestamp strtotime(substr($timevalue,6,18)." ".substr($timevalue,38,3));
    
$sign    =    "";
    
$msg    =    "";
    if (
$offset==0)    {    $color="success"$msg " <b>Within a second</b> of time server.";    }
    if (
$offset<0)    {    $color="danger"$msg " <b>$httphost</b> is behind time server.";        }
    if (
$offset>0)    {    $color="wanring"$sign="+"$msg $httphost is ahead of time server.";    }
    echo    
'<div class="card border-'.$color.' mb-3 " style="max-width: 18rem;">
                <div class="card-header bg-transparent border-'
.$color.' text-center"><b>Offset</b></div>
                <div class="card-body text-'
.$color.'">
                    <h5 class="card-title">'
.$sign.$offset.'</h5>
                    <p class="card-text">'
.$msg.'</p>
                </div>
                <div class="text-white card-footer bg-'
.$color.' border-'.$color.' text-center">Time Protocol</div>
            </div>'
;


    
function 
query_time_server ($timeserver$socket) {
/* Query a time server
   (C) 1999-09-29, Ralf D. Kloth (QRQ.software) <ralf at qrq.de> */

  
$fp = @fsockopen($timeserver,$socket,$err,$errstr,5);
        
# parameters: server, socket, error code, error text, timeout
  
if ($fp) {
    
fputs($fp,"\n");
    
$timevalue fread($fp,49);
    
fclose($fp); # close the connection
  
}
  else {
    
$timevalue " ";
  }

  
$ret = array();
  
$ret[] = $timevalue;
  
$ret[] = $err;     # error code
  
$ret[] = $errstr;  # error text
  
return($ret);

# function query_time_server 
    
    
echo    "</div>";
    echo    
"<b>Daytime Protocol</b><a href=\"https://en.wikipedia.org/wiki/Daytime_Protocol\" target='_blank'><sup><i class=\"fas fa-external-link-alt\"></i></sup></a> returns an ASCII character string of the current date and time in an unspecified format.<br><br>";

    echo    
"</div>";

    include(
'copyright.php');
    echo    
"</div>";
    include(
"footer.php");
?>
</body></html>