Files
hns_doh_loadbalancer/public/index.html
Nathan Woodburn 656f17020f
All checks were successful
Build Docker / Build_Docker (push) Successful in 3m16s
feat: Add donation info to HNSDoH
2025-08-22 12:07:01 +10:00

432 lines
33 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html data-bs-theme="dark" lang="en-au">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>HNS DoH</title>
<meta name="twitter:image" content="https://hnsdoh.woodburn.au/assets/img/HNS.png">
<meta name="twitter:card" content="summary">
<meta name="twitter:description" content="Access Handshake Domains with DNS over HTTPS">
<meta property="og:title" content="HNS DoH">
<meta property="og:type" content="website">
<meta property="og:description" content="Access Handshake Domains with DNS over HTTPS">
<meta name="twitter:title" content="HNS DoH">
<meta name="description" content="Access Handshake Domains with DNS over HTTPS">
<meta property="og:image" content="https://hnsdoh.woodburn.au/assets/img/HNS.png">
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"name": "HNS DoH",
"url": "https://hnsdoh.woodburn.au"
}
</script>
<link rel="icon" type="image/png" sizes="670x700" href="assets/img/HNS.png">
<link rel="icon" type="image/png" sizes="670x700" href="assets/img/HNSW.png" media="(prefers-color-scheme: dark)">
<link rel="icon" type="image/png" sizes="670x700" href="assets/img/HNS.png">
<link rel="icon" type="image/png" sizes="670x700" href="assets/img/HNSW.png" media="(prefers-color-scheme: dark)">
<link rel="icon" type="image/png" sizes="670x700" href="assets/img/HNS.png">
<link rel="icon" type="image/png" sizes="670x700" href="assets/img/HNS.png">
<link rel="icon" type="image/png" sizes="670x700" href="assets/img/HNS.png">
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Navbar-Right-Links-Dark-icons.css">
<link rel="stylesheet" href="assets/css/Team-images.css">
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.woodburn.au/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '11']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
<script async src="https://umami.woodburn.au/script.js" data-website-id="7e0ed7e4-3858-4124-a574-b57ac05aaad1"></script>
</head>
<body>
<header>
<nav class="navbar navbar-expand-md fixed-top bg-dark py-3" data-bs-theme="dark">
<div class="container-fluid"><a class="navbar-brand d-flex align-items-center" href="/#"><span class="bs-icon-sm bs-icon-rounded bs-icon-primary d-flex justify-content-center align-items-center me-2 bs-icon"><img src="assets/img/HNSW.png" width="20px"></span><span>HNS DoH</span></a></div>
</nav>
</header>
<section id="intro" style="margin: 100px;margin-top: 20vh;">
<div class="text-center">
<h1 class="text-center" style="margin-bottom: 50px;font-size: 60px;">HNS DoH</h1>
<h2 class="text-center" style="margin-bottom: 50px;">Welcome to HNS DoH, your gateway to Handshake domains.</h2>
<p>Introducing our latest Handshake DNS service, a revolutionary approach to secure and efficient internet communication. In a digital landscape where privacy and reliability are paramount, our service stands out by integrating multiple nodes to guarantee high availability.<br>Say hello to a new era of accessing Handshake domains.</p>
<h1 style="margin-top: 50px;">Reliability is our key focus</h1>
<p>By using a diverse group of upstream providers, we minimise downtime. Multiple of our DNS providers can go down without any downtime to our users.<br>Check out our uptime compared to our upstream DNS providers</p><a class="btn btn-primary" role="button" target="_blank" href="https://status.hnsdoh.com">Status Page</a>
<h1 style="margin-top: 50px;">Support HNSDoH</h1>
<p>HNS DoH is a community-driven project.<br>If youd like to help keep the service running and growing, consider supporting us:<br>
<div class="btn-group-vertical btn-group-sm gap-1" role="group"><a class="btn btn-primary" role="button" target="_blank" href="https://paypal.me/nathanwoodburn">PayPal</a><a class="btn btn-primary" role="button" target="_blank" href="https://donate.stripe.com/8wM6pv0VD08Xe408ww">Card (via Stripe)</a><a class="btn btn-primary" role="button" target="_blank" href="https://nathan.woodburn.au/donate?c=hns">HNS</a><a class="btn btn-primary" role="button" target="_blank" href="https://nathan.woodburn.au/donate?c=btc">BTC</a><a class="btn btn-primary" role="button" target="_blank" href="https://nathan.woodburn.au/donate">Other Donation Options</a></div>
</p>
</div>
</section>
<section id="setup" style="min-height: 400px;padding-top: 10vh;text-align: center;margin-right: 10%;margin-left: 10%;" data-bs-target="#navcol-5" data-bs-smooth-scroll="true">
<h3 class="display-1">Setup</h3>
<ul class="list-group">
<li class="list-group-item">
<div>
<h5 class="display-5">DNS over HTTPS</h5>
<p>DNS over HTTPS is supported by most browsers. To add HNSDoH to your resolvers add this URL to your Secure DNS setting<br><code style="display: block;">https://hnsdoh.com/dns-query</code></p>
<p>You can also specify a specific region to have faster resolution with a lower number of servers for redundancy.<br><code style="display: block;">https://{region}.hnsdoh.com/dns-query</code><span>For example the AU region can be set using:&nbsp;</span><code style="display: inline;">https://au.hnsdoh.com/dns-query</code></p>
</div>
</li>
<li class="list-group-item">
<div>
<h5 class="display-5">DNS over TLS</h5>
<p>DNS over TLS is the best option for mobile phones. Simply set Private DNS to the hostname&nbsp;<br><code>hnsdoh.com</code></p>
<p>You can also specify a specific region to have faster resolution with a lower number of servers for redundancy.<br><code style="display: block;">{region}.hnsdoh.com</code><span>For example the AU region can be set using:&nbsp;</span><code style="display: inline;">au.hnsdoh.com</code></p>
</div>
</li>
<li class="list-group-item">
<div>
<h5 class="display-5">Plain DNS</h5>
<p>As a last resort you can use any of plain DNS below (best to chose 2 IPs from different people)<br><br>- 194.50.5.27 (powered by Nathan.Woodburn/)<br>-&nbsp;139.177.195.185 (powered by HNS Canada)<br>-&nbsp;172.233.46.92 (powered by Nathan.Woodburn/)<br>-&nbsp;172.105.120.203 (powered by Nathan.Woodburn/)<br>-&nbsp;51.24.7.1 (powered by Easy HNS)<br><br>Alternative Providers (Not running the HNSDoH software configuration)<br><br>- 194.50.5.26 (powered by Nathan.Woodburn/)<br>- 194.50.5.28 (powered by Nathan.Woodburn/)<br>-&nbsp;139.144.68.241 (powered by HNS DNS)<br>- 139.144.68.242 (powered by HNS DNS)<br>- 2a01:7e01:e002:c300:: (powered by HNS DNS)<br>- 2a01:7e01:e002:c500:: (powered by HNS DNS)</p>
</div>
</li>
</ul>
</section>
<section style="margin-top: 10vh;margin-right: 10%;margin-left: 10%;">
<div style="text-align: center;">
<h1 style="margin-bottom: 5vh;">Project Information</h1>
<div class="card-group">
<div class="card">
<div class="card-body">
<h4 class="card-title">Open Source</h4>
<p class="card-text">This DoH load balancing system is open source.<br>You can check the code or run your own</p><a class="btn btn-primary" role="button" href="https://github.com/nathanwoodburn/hns_doh_loadbalancer" target="_blank">View Code</a>
</div>
</div>
<div class="card">
<div class="card-body">
<h4 class="card-title">Community run&nbsp;</h4>
<p class="card-text">To ensure high availability, HNSDoH is run by the community around the globe.<br>Do you have some spare compute resources?</p><a class="btn btn-primary" role="button" href="https://github.com/nathanwoodburn/hns_doh_loadbalancer/#how-to-help" target="_blank">Learn how to help</a>
</div>
</div>
</div>
<div class="container py-4 py-xl-5" id="members">
<div class="row mb-4 mb-lg-5" style="margin-top: 50px;">
<div class="col-md-8 col-xl-6 text-center mx-auto">
<h2>Members</h2>
<p class="w-lg-50">Here is a list of community members running or sponsoring nodes for HNS DoH</p>
</div>
</div>
<div class="row gx-4 row-cols-2 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-4" style="--bs-primary: #ffffff;--bs-primary-rgb: 255,255,255;">
<div class="col" style="margin-bottom: 25px;">
<div class="card border-0 shadow-none">
<div class="card-body text-center d-flex flex-column align-items-center p-0"><img class="rounded-circle mb-3 fit-cover" width="130" height="130" src="assets/img/people/nathanwoodburn.webp">
<h5 class="fw-bold text-primary mb-0 card-title"><strong>Nathan.Woodburn/</strong></h5>
<p class="text-muted mb-2 card-text">Australia</p><a class="btn btn-primary" role="button" target="_blank" href="https://nathan.woodburn.au"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H18C18.5523 17 19 16.5523 19 16V8C19 7.44772 18.5523 7 18 7H14ZM17 9H15V15H17V9Z" fill="currentColor"></path>
<path d="M6 7C5.44772 7 5 7.44772 5 8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8C11 7.44772 10.5523 7 10 7H6Z" fill="currentColor"></path>
<path d="M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H10C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11H6Z" fill="currentColor"></path>
<path d="M5 16C5 15.4477 5.44772 15 6 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H6C5.44772 17 5 16.5523 5 16Z" fill="currentColor"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.34315 3 1 4.34315 1 6V18C1 19.6569 2.34315 21 4 21H20C21.6569 21 23 19.6569 23 18V6C23 4.34315 21.6569 3 20 3H4ZM20 5H4C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V6C21 5.44772 20.5523 5 20 5Z" fill="currentColor"></path>
</svg>&nbsp;Website</a>
</div>
</div>
</div>
<div class="col" style="margin-bottom: 25px;">
<div class="card border-0 shadow-none">
<div class="card-body text-center d-flex flex-column align-items-center p-0"><img class="rounded-circle mb-3 fit-cover" src="assets/img/people/HNSCA.webp" height="130">
<h5 class="fw-bold text-primary mb-0 card-title">HNS Canada</h5>
<p class="text-muted mb-2 card-text">Canada</p><a class="btn btn-primary" role="button" href="https://hnscanada.ca/" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H18C18.5523 17 19 16.5523 19 16V8C19 7.44772 18.5523 7 18 7H14ZM17 9H15V15H17V9Z" fill="currentColor"></path>
<path d="M6 7C5.44772 7 5 7.44772 5 8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8C11 7.44772 10.5523 7 10 7H6Z" fill="currentColor"></path>
<path d="M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H10C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11H6Z" fill="currentColor"></path>
<path d="M5 16C5 15.4477 5.44772 15 6 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H6C5.44772 17 5 16.5523 5 16Z" fill="currentColor"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.34315 3 1 4.34315 1 6V18C1 19.6569 2.34315 21 4 21H20C21.6569 21 23 19.6569 23 18V6C23 4.34315 21.6569 3 20 3H4ZM20 5H4C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V6C21 5.44772 20.5523 5 20 5Z" fill="currentColor"></path>
</svg>&nbsp;Website</a>
</div>
</div>
</div>
<div class="col" style="margin-bottom: 25px;">
<div class="card border-0 shadow-none">
<div class="card-body text-center d-flex flex-column align-items-center p-0"><img class="rounded-circle mb-3 fit-cover" width="130" height="130" src="assets/img/people/easy-hns.jpg">
<h5 class="fw-bold text-primary mb-0 card-title"><strong>Easy HNS</strong></h5>
<p class="text-muted mb-2 card-text">England</p><a class="btn btn-primary" role="button" target="_blank" href="https://easyhns.com"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H18C18.5523 17 19 16.5523 19 16V8C19 7.44772 18.5523 7 18 7H14ZM17 9H15V15H17V9Z" fill="currentColor"></path>
<path d="M6 7C5.44772 7 5 7.44772 5 8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8C11 7.44772 10.5523 7 10 7H6Z" fill="currentColor"></path>
<path d="M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H10C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11H6Z" fill="currentColor"></path>
<path d="M5 16C5 15.4477 5.44772 15 6 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H6C5.44772 17 5 16.5523 5 16Z" fill="currentColor"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.34315 3 1 4.34315 1 6V18C1 19.6569 2.34315 21 4 21H20C21.6569 21 23 19.6569 23 18V6C23 4.34315 21.6569 3 20 3H4ZM20 5H4C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V6C21 5.44772 20.5523 5 20 5Z" fill="currentColor"></path>
</svg>&nbsp;Website</a>
</div>
</div>
</div>
<div class="col" style="margin-bottom: 25px;">
<div class="card border-0 shadow-none">
<div class="card-body text-center d-flex flex-column align-items-center p-0"><img class="rounded-circle mb-3 fit-cover" alt="icon, profile, user, clip art, user, user, user, user, user" src="assets/img/no_one.png" height="130">
<h5 class="fw-bold text-primary mb-0 card-title">Zorro</h5>
<p class="text-muted mb-2 card-text">United States</p><a class="btn btn-primary disabled" role="button" href="#" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H18C18.5523 17 19 16.5523 19 16V8C19 7.44772 18.5523 7 18 7H14ZM17 9H15V15H17V9Z" fill="currentColor"></path>
<path d="M6 7C5.44772 7 5 7.44772 5 8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8C11 7.44772 10.5523 7 10 7H6Z" fill="currentColor"></path>
<path d="M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H10C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11H6Z" fill="currentColor"></path>
<path d="M5 16C5 15.4477 5.44772 15 6 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H6C5.44772 17 5 16.5523 5 16Z" fill="currentColor"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.34315 3 1 4.34315 1 6V18C1 19.6569 2.34315 21 4 21H20C21.6569 21 23 19.6569 23 18V6C23 4.34315 21.6569 3 20 3H4ZM20 5H4C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V6C21 5.44772 20.5523 5 20 5Z" fill="currentColor"></path>
</svg>&nbsp;Website</a>
</div>
</div>
</div>
<div class="col" style="margin-bottom: 25px;">
<div class="card border-0 shadow-none">
<div class="card-body text-center d-flex flex-column align-items-center p-0"><img class="rounded-circle mb-3 fit-cover" src="assets/img/people/marioo.jpg" height="130">
<h5 class="fw-bold text-primary mb-0 card-title">Marioo</h5>
<p class="text-muted mb-2 card-text">Europe</p><a class="btn btn-primary" role="button" href="https://x.com/hs1marioo" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H18C18.5523 17 19 16.5523 19 16V8C19 7.44772 18.5523 7 18 7H14ZM17 9H15V15H17V9Z" fill="currentColor"></path>
<path d="M6 7C5.44772 7 5 7.44772 5 8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8C11 7.44772 10.5523 7 10 7H6Z" fill="currentColor"></path>
<path d="M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H10C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11H6Z" fill="currentColor"></path>
<path d="M5 16C5 15.4477 5.44772 15 6 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H6C5.44772 17 5 16.5523 5 16Z" fill="currentColor"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.34315 3 1 4.34315 1 6V18C1 19.6569 2.34315 21 4 21H20C21.6569 21 23 19.6569 23 18V6C23 4.34315 21.6569 3 20 3H4ZM20 5H4C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V6C21 5.44772 20.5523 5 20 5Z" fill="currentColor"></path>
</svg>&nbsp;Website</a>
</div>
</div>
</div>
<div class="col" style="margin-bottom: 25px;">
<div class="card border-0 shadow-none">
<div class="card-body text-center d-flex flex-column align-items-center p-0"><img class="rounded-circle mb-3 fit-cover" src="assets/img/people/erwin.groen.jpg" height="130">
<h5 class="fw-bold text-primary mb-0 card-title">Erwin.Groen/</h5>
<p class="text-muted mb-2 card-text">Australia</p><a class="btn btn-primary" role="button" href="https://hns.au" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H18C18.5523 17 19 16.5523 19 16V8C19 7.44772 18.5523 7 18 7H14ZM17 9H15V15H17V9Z" fill="currentColor"></path>
<path d="M6 7C5.44772 7 5 7.44772 5 8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8C11 7.44772 10.5523 7 10 7H6Z" fill="currentColor"></path>
<path d="M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H10C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11H6Z" fill="currentColor"></path>
<path d="M5 16C5 15.4477 5.44772 15 6 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H6C5.44772 17 5 16.5523 5 16Z" fill="currentColor"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.34315 3 1 4.34315 1 6V18C1 19.6569 2.34315 21 4 21H20C21.6569 21 23 19.6569 23 18V6C23 4.34315 21.6569 3 20 3H4ZM20 5H4C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V6C21 5.44772 20.5523 5 20 5Z" fill="currentColor"></path>
</svg>&nbsp;Website</a>
</div>
</div>
</div>
<div class="col" style="margin-bottom: 25px;">
<div class="card border-0 shadow-none">
<div class="card-body text-center d-flex flex-column align-items-center p-0"><img class="rounded-circle mb-3 fit-cover" src="assets/img/people/nameguardian.jpg" height="130">
<h5 class="fw-bold text-primary mb-0 card-title">NameGuardian/</h5>
<p class="text-muted mb-2 card-text">United States</p><a class="btn btn-primary" role="button" href="https://x.com/NameGuardianHNS" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H18C18.5523 17 19 16.5523 19 16V8C19 7.44772 18.5523 7 18 7H14ZM17 9H15V15H17V9Z" fill="currentColor"></path>
<path d="M6 7C5.44772 7 5 7.44772 5 8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8C11 7.44772 10.5523 7 10 7H6Z" fill="currentColor"></path>
<path d="M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H10C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11H6Z" fill="currentColor"></path>
<path d="M5 16C5 15.4477 5.44772 15 6 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H6C5.44772 17 5 16.5523 5 16Z" fill="currentColor"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.34315 3 1 4.34315 1 6V18C1 19.6569 2.34315 21 4 21H20C21.6569 21 23 19.6569 23 18V6C23 4.34315 21.6569 3 20 3H4ZM20 5H4C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19H20C20.5523 19 21 18.5523 21 18V6C21 5.44772 20.5523 5 20 5Z" fill="currentColor"></path>
</svg>&nbsp;Website</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="regions" style="margin-top: 10vh;margin-right: 10%;margin-left: 10%;">
<div style="text-align: center;">
<h1>Regions</h1>
<div>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Region</th>
<th>Region ID</th>
<th># of nodes</th>
<th>Latency&nbsp;<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 24 24" width="1em" fill="currentColor" id="refresh-ping" style="color: rgb(255,255,255);">
<path d="M0 0h24v24H0z" fill="none"></path>
<path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"></path>
</svg></th>
</tr>
</thead>
<tbody>
<tr>
<td>Australia</td>
<td>au</td>
<td>1</td>
<td><span id="au-ping">Pinging...</span></td>
</tr>
<tr>
<td>Europe</td>
<td>eu</td>
<td>2</td>
<td><span id="eu-ping">Pinging...</span></td>
</tr>
<tr>
<td>North America</td>
<td>na</td>
<td>2</td>
<td><span id="na-ping">Pinging...</span></td>
</tr>
<tr>
<td>Asia</td>
<td>as</td>
<td>1</td>
<td><span id="as-ping">Pinging...</span></td>
</tr>
<tr>
<td>Asia Pacific</td>
<td>ap</td>
<td>2</td>
<td><span id="ap-ping">Pinging...</span></td>
</tr>
</tbody>
</table>
</div>
<script>
function pingServer(id) {
return new Promise((resolve) => { // Always resolve the promise
if (!id) {
resolve({ id, pingTime: null, error: "Error: Invalid server ID" });
return;
}
const startTime = performance.now(); // Record the start time
const serverUrl = `https://${id}.hnsdoh.com/dns-query?dns=CagBAAABAAAAAAAACHdvb2RidXJuAAABAAE=`;
// Use fetch with no-cors mode
fetch(serverUrl, {
method: 'GET',
mode: 'no-cors',
headers: { 'Content-Type': 'application/dns-message' },
cache: "no-store"
})
.then(response => {
const endTime = performance.now(); // Record the end time
const pingTime = endTime - startTime; // Calculate ping time
// Round the ping time to the nearest integer
const pingTimeRounded = Math.round(pingTime);
// Resolve with the ID and ping time
resolve({ id, pingTime:pingTimeRounded, error: null });
})
.catch(error => {
// Resolve with an error message instead of rejecting
resolve({ id, pingTime: null, error: `Error pinging server` });
});
});
}
function runPingTest() {
const regions = ["au", "eu", "na", "as", "ap"];
const pingPromises = regions.map(region => pingServer(region));
regions.forEach(region => {
const spanId = `${region}-ping`;
const spanElement = document.getElementById(spanId);
if (spanElement) {
spanElement.textContent = "Pinging..."; // Show Pinging... while waiting for results
}
});
Promise.all(pingPromises)
.then(results => {
console.log("Ping results:", results);
// Update the corresponding span elements with ping results
results.forEach(result => {
const spanId = `${result.id}-ping`;
const spanElement = document.getElementById(spanId);
if (spanElement) {
if (result.pingTime !== null) {
spanElement.textContent = `${result.pingTime} ms`;
} else {
spanElement.textContent = result.error; // Display error message
}
}
});
})
.catch(error => {
console.error("Error pinging servers:", error);
});
}
runPingTest();
// Add event listener to the refresh link
document.getElementById('refresh-ping').addEventListener('click', function (event) {
event.preventDefault(); // Prevent the default link behavior
runPingTest(); // Re-run the ping test
});
</script>
</div>
</div>
</section>
<section id="nodes" style="margin-top: 10vh;margin-right: 10%;margin-left: 10%;">
<div style="text-align: center;">
<h1>Nodes</h1>
<div>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Provider</th>
<th>Location</th>
<th>IPv4</th>
<th>IPv6</th>
<th>Regions</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://nathan.woodburn.au" style="color: rgb(255,255,255);" target="_blank">Nathan.Woodburn/</a></td>
<td>Australia</td>
<td>194.50.5.27</td>
<td>Not available</td>
<td>AU, AP</td>
</tr>
<tr>
<td><a data-bs-toggle="tooltip" data-bss-tooltip="" href="https://hnscanada.ca/" style="color: rgb(255,255,255);" target="_blank" title="This node is managed by Nathan.Woodburn/">HNS Canada*</a></td>
<td>Canada</td>
<td>139.177.195.185</td>
<td>2600:3c04::f03c:94ff:fed1:877f</td>
<td>NA</td>
</tr>
<tr>
<td><a data-bs-toggle="tooltip" data-bss-tooltip="" href="https://x.com/hs1marioo" style="color: rgb(255,255,255);" target="_blank" title="This node is managed by Nathan.Woodburn/">Marioo*</a></td>
<td>Netherlands</td>
<td>172.233.46.92</td>
<td>2600:3c0e::f03c:94ff:fed1:9905</td>
<td>EU</td>
</tr>
<tr>
<td><a data-bs-toggle="tooltip" data-bss-tooltip="" href="https://x.com/NameGuardianHNS" style="color: rgb(255,255,255);" target="_blank" title="This node is managed by Nathan.Woodburn/">NameGuardian/*</a></td>
<td>Singapore</td>
<td>172.105.120.203</td>
<td>2400:8901::f03c:94ff:fed1:18ee</td>
<td>AS, AP</td>
</tr>
<tr>
<td><a href="https://easyhns.com" style="color: rgb(255,255,255);" target="_blank">Easy HNS</a></td>
<td>England</td>
<td>51.24.7.1</td>
<td>2a05:d01c:b4a:2900:a47b:4665:c52f:fc6c</td>
<td>EU</td>
</tr>
<tr>
<td><a href="about:blank" style="color: rgb(255,255,255);" target="_blank">Zorro</a></td>
<td>United States</td>
<td>173.233.72.88</td>
<td>2604:7c00:16:183::1</td>
<td>NA</td>
</tr>
</tbody>
</table>
</div><span>Note: Some nodes are in multiple regions to allow selecting larger regions.</span>
</div>
</div>
</section>
<footer class="text-center bg-dark">
<div class="container text-white py-4 py-lg-5"><a href="https://status.hnsdoh.com" target="_blank" style="margin-right: 10px;">Status Page</a>
<p class="text-muted mb-0">Copyright © 2025 HNSDoH</p><!-- Matomo Image Tracker-->
<img referrerpolicy="no-referrer-when-downgrade" src="https://analytics.woodburn.au/matomo.php?idsite=11&amp;rec=1" style="border:0" alt="" />
<!-- End Matomo -->
</div>
</footer>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/bs-init.js"></script>
</body>
</html>