<?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>