meta/meta.php

107 lines
5.5 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Meta</title>
</head>
<body>
<section>
<h1><abbr title="Internet Protocol">IP</abbr></h1>
Client address: <samp><?= htmlspecialchars($_SERVER['REMOTE_ADDR']) ?></samp> (<a href="<?= htmlspecialchars($_SERVER['REMOTE_ADDR']) ?>">informations from database</a>)<br>
Server address: <?php
if (filter_var($_SERVER['SERVER_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)) { ?>
<samp><?= htmlspecialchars($_SERVER['SERVER_ADDR']) ?></samp> (<a href="<?= htmlspecialchars($_SERVER['SERVER_ADDR']) ?>">informations from database</a>)
<?php } else
echo "<em>- (require IPv6)</em>";
?>
<br>
</section>
<section>
<h1><abbr title="Transmission Control Protocol">TCP</abbr></h1>
<abbr title="Round Trip Time">RTT</abbr>: <samp><?= htmlspecialchars($_SERVER['TCPINFO_RTT']) ?></samp> milliseconds<br>
<abbr title="Round Trip Time">RTT</abbr> variance: <samp><?= htmlspecialchars($_SERVER['TCPINFO_RTTVAR']) ?></samp><br>
SND CWND: <samp><?= htmlspecialchars($_SERVER['TCPINFO_SND_CWND']) ?></samp><br>
RCV SPACE: <samp><?= htmlspecialchars($_SERVER['TCPINFO_RCV_SPACE']) ?></samp><br>
<section>
<h2>Ports</h2>
Client port: <samp><?= htmlspecialchars($_SERVER['REMOTE_PORT']) ?></samp><br>
Server port: <samp><?= htmlspecialchars($_SERVER['SERVER_PORT']) ?></samp><br>
<details>
<summary>Test outgoing destination ports (IPv6 only)</summary>
<?php
$reachablePorts = Array(1,2,20,21,22,23,25,53,80,123,143,443,587,853,993,1312,3478,5349,8448,16384,25535,32768,49152,65535);
foreach ($reachablePorts as $port) { ?>
<a href="https://ports.meta.4.niv.re:<?= $port ?>/">https://ports.meta.4.niv.re:<strong><?= $port ?></strong>/</a><br>
<?php }
?>
</details>
</section>
</section>
<section>
<h1><abbr title="Transport Layer Security">TLS</abbr></h1>
TLS session ID: <samp><?= htmlspecialchars($_SERVER['SSL_SESSION_ID']) ?></samp><br>
Offered TLS curves: <samp><?= htmlspecialchars($_SERVER['SSL_CURVES']) ?></samp><br>
Offered TLS ciphers: <samp><?= htmlspecialchars($_SERVER['SSL_CIPHERS']) ?></samp><br>
Negotiated TLS cipher: <samp><?= htmlspecialchars($_SERVER['SSL_CIPHER']) ?></samp><br>
Negotiated TLS version: <samp><?= htmlspecialchars($_SERVER['SSL_PROTOCOL']) ?></samp><br>
</section>
<section>
<h1><abbr title="HyperText Transfert Protocol">HTTP</abbr></h1>
Request line: <samp><?= htmlspecialchars($_SERVER['REQUEST']) ?></samp><br>
<section>
<h2>Headers</h2>
<pre><?php
foreach (getallheaders() as $name => $value) {
if ($name !== "Content-Length" AND $name !== "Content-Type")
echo htmlspecialchars($name) . ": " . htmlspecialchars($value) . "\n";
} ?></pre>
<details>
<summary>Headers definition lists</summary>
<a href="https://en.wikipedia.org/wiki/List_of_HTTP_header_fields">https://en.wikipedia.org/wiki/List_of_HTTP_header_fields</a><br>
<a href="https://developer.mozilla.org/docs/Web/HTTP/Headers">https://developer.mozilla.org/docs/Web/HTTP/Headers</a><br>
<a href="https://datatracker.ietf.org/doc/html/rfc2616">https://datatracker.ietf.org/doc/html/rfc2616</a><br>
<a href="https://datatracker.ietf.org/doc/html/rfc7231#section-5">RFC 7231 <em>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</em> > <em>5. Request Header Fields</em></a><br>
<a href="https://datatracker.ietf.org/doc/html/rfc7231#section-7">RFC 7231 <em>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</em> > <em>7. Response Header Fields</em></a><br>
</details>
</section>
</section>
<section>
<h1>Server system informations</h1>
<?php
date_default_timezone_set('UTC');
?>
Architecture: <samp><?= htmlspecialchars(php_uname("m")) ?></samp><br>
Distribution: <samp><?php echo htmlspecialchars(shell_exec("/usr/bin/lsb_release -si")); ?></samp><br>
Distribution version: <samp><?php echo htmlspecialchars(shell_exec("/usr/bin/lsb_release -sr")); ?></samp><br>
Distribution version codename: <samp><?php echo htmlspecialchars(shell_exec("/usr/bin/lsb_release -sc")); ?></samp><br>
Distribution description: <samp><?php echo htmlspecialchars(shell_exec("/usr/bin/lsb_release -sd")); ?></samp><br>
Kernel: <samp><?= htmlspecialchars(php_uname("s")) ?></samp><br>
Kernel version: <samp><?= htmlspecialchars(php_uname("r")) ?></samp><br>
Nginx version: <samp><?= htmlspecialchars($_SERVER['NGINX_VERSION']) ?></samp><br>
PHP version: <samp><?= htmlspecialchars(phpversion()) ?></samp><br>
Connection ID since Nginx startup: <samp><?= htmlspecialchars($_SERVER['CONNECTION']) ?></samp><br>
Requests in this connection: <samp><?= htmlspecialchars($_SERVER['CONNECTION_REQUESTS']) ?></samp><br>
<?php
$time = explode(".", $_SERVER['REQUEST_TIME_FLOAT']);
?>
Unix time: <samp title="Number of seconds since January 1 1970 00:00:00.0000 UTC"><?= htmlspecialchars($_SERVER['REQUEST_TIME_FLOAT']) ?></samp> (<span title="year-month-day hour:minute:second.decimal"><?= date("Y-m-d H:i:s", $time[0]) . "." . $time[1] ?></span> UTC)<br>
<br>
</section>
<footer>
<a href="https://code.antopie.org/miraty/meta">Source code</a>
</footer>
</body>
</html>