feat: simplify html, make whole ip field clickable, attribute ip regex
This commit is contained in:
parent
5dacc07a1b
commit
700b8d6e14
|
@ -40,8 +40,8 @@
|
|||
</div>
|
||||
<div class="mb-3"><label for="ip" class="text-black dark:text-white">IP-Adresse</label>
|
||||
<div
|
||||
class="block appearance-none w-full py-1 px-2 mb-1 text-base leading-normal bg-gray-600 dark:bg-gray-400 border border-gray-300 dark:border-gray-700 rounded">
|
||||
<a id="ip" class="" href="#">lade …</a>
|
||||
class="block appearance-none w-full py-1 px-2 mb-1 text-base leading-normal bg-gray-600 dark:bg-gray-400 border border-gray-300 dark:border-gray-700 rounded cursor-pointer">
|
||||
<a id="ip" class="" href="#">lade …</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
/* script for t.gma.name by gma */
|
||||
|
||||
function isValidIpAddr(ip) {
|
||||
return /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/.test(ip);
|
||||
// check for valid ipv4 and ipv6 address using regex. source: https://regex101.com/library/yyslXu
|
||||
return /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/.test(ip);
|
||||
}
|
||||
|
||||
function truncate(ip, maxlen = 20) {
|
||||
|
@ -12,6 +13,18 @@ function truncate(ip, maxlen = 20) {
|
|||
}
|
||||
}
|
||||
|
||||
const openIpLink = (event) => {
|
||||
const trg = event.target;
|
||||
if(trg) {
|
||||
if(trg.id === 'ip') {
|
||||
return;
|
||||
} else {
|
||||
const e = document.getElementById('ip');
|
||||
e.click();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
addEventListener("DOMContentLoaded", async (event) => {
|
||||
try {
|
||||
const resp = await fetch('/myip');
|
||||
|
@ -21,6 +34,7 @@ addEventListener("DOMContentLoaded", async (event) => {
|
|||
e.href = "https://apps.db.ripe.net/db-web-ui/query?rflag=true&source=GRS&bflag=true&searchtext=" + respText;
|
||||
e.textContent = truncate(respText);
|
||||
e.title = respText;
|
||||
e.parentNode.onclick = openIpLink;
|
||||
} else {
|
||||
e.textContent = "invalid ip.";
|
||||
e.title = "invalid ip.";
|
||||
|
|
Loading…
Reference in New Issue