82 lines
2.3 KiB
HTML
82 lines
2.3 KiB
HTML
{{ template "layout" . }}
|
|
|
|
{{ define "page_title" }}{{ .T.TitleSimple }}{{ end }}
|
|
|
|
{{ define "extra_css" }}
|
|
body {
|
|
font-size: 2rem;
|
|
height: 100vh;
|
|
padding: 0;
|
|
}
|
|
ul {
|
|
max-width: 90%;
|
|
}
|
|
li {
|
|
padding: 15px 0px;
|
|
}
|
|
@media (min-width: 600px) {
|
|
body { font-size: 3rem; padding: 0 20px; }
|
|
}
|
|
@media (min-width: 900px) {
|
|
body { font-size: 4rem; }
|
|
}
|
|
{{ end }}
|
|
|
|
{{ define "content" }}
|
|
<ul id="ips">
|
|
<li><span class="label">{{ .NetAddress.Type }}: </span><b>{{ .NetAddress.Address }}</b></li>
|
|
</ul>
|
|
{{ end }}
|
|
|
|
{{ define "nav_links" }}
|
|
<a href="/advanced" class="nav-link">{{ .T.AdvancedView }}</a>
|
|
<span style="border-left: 1px solid var(--divider-color); height: 18px; margin: 0 15px;"></span>
|
|
<a href="/headers" class="nav-link">{{ .T.HeadersView }}</a>
|
|
<span style="border-left: 1px solid var(--divider-color); height: 18px; margin: 0 15px;"></span>
|
|
<a id="copy-btn" class="nav-link">{{ .T.CopyInfo }}</a>
|
|
{{ end }}
|
|
|
|
{{ define "extra_js" }}
|
|
async function getIp() {
|
|
const isIpv4 = "{{ .NetAddress.Type }}" == "IPv4";
|
|
let requestUrl = isIpv4 ? "{{ .IPv6Endpoint }}" : "{{ .IPv4Endpoint }}";
|
|
|
|
const response = await fetch(requestUrl);
|
|
const data = await response.json();
|
|
|
|
const ul = document.getElementById("ips")
|
|
|
|
if (data.address) {
|
|
let child = document.createElement("li");
|
|
|
|
let span = document.createElement("span");
|
|
span.className = "label";
|
|
span.textContent = data.type + ": ";
|
|
|
|
let b = document.createElement("b");
|
|
b.textContent = data.address;
|
|
|
|
child.appendChild(span);
|
|
child.appendChild(b);
|
|
|
|
ul.appendChild(child);
|
|
}
|
|
}
|
|
getIp();
|
|
|
|
document.getElementById('copy-btn').addEventListener('click', async (e) => {
|
|
e.preventDefault();
|
|
let info = [];
|
|
document.querySelectorAll('#ips li').forEach(li => info.push(li.innerText));
|
|
|
|
try {
|
|
await navigator.clipboard.writeText(info.join('\n'));
|
|
const btn = document.getElementById('copy-btn');
|
|
btn.innerText = '{{ .T.Copied }}';
|
|
setTimeout(() => btn.innerText = '{{ .T.CopyInfo }}', 2000);
|
|
} catch (err) {
|
|
console.error('Failed to copy', err);
|
|
}
|
|
});
|
|
{{ end }}
|