UNPKG

geist-ui-svelte

Version:

<img src="./src/lib/assets/demo-page.png">

62 lines (61 loc) 2.24 kB
export class IPAddress { static parseIPV4(address) { const octets = [0, 0, 0, 0]; let octet = 0; let startIndex = 0; for (let i = 0; i < address.length; i++) { if (address[i] == "." || address[i] == " ") { let octetStr = address.slice(startIndex, i); if (octetStr.length > 3) octetStr = address.slice(startIndex, startIndex + 3); octets[octet] = parseInt(octetStr); startIndex = i + 1; octet++; } if (i == address.length - 1) { let octetStr = address.slice(startIndex); if (octetStr.length > 3) octetStr = address.slice(startIndex, startIndex + 3); octets[octet] = parseInt(octetStr); } } return octets; } static toString(octets, noDot = false) { if (noDot) { return `${octets[0]} ${octets[1]} ${octets[2]} ${octets[3]}`; } return `${octets[0]}.${octets[1]}.${octets[2]}.${octets[3]}`; } static validOctets(octets) { for (let i = 0; i < octets.length; i++) { if (isNaN(octets[i])) return false; if (octets[i] < 0 || octets[i] > 255) return false; } return true; } static validIP(address) { const octets = [0, 0, 0, 0]; let octet = 0; let startIndex = 0; for (let i = 0; i < address.length; i++) { if (address[i] == "." || address[i] == " ") { let octetStr = address.slice(startIndex, i); if (octetStr.length > 3) octetStr = address.slice(startIndex, startIndex + 3); octets[octet] = parseInt(octetStr); startIndex = i + 1; octet++; } if (i == address.length - 1) { let octetStr = address.slice(startIndex); if (octetStr.length > 3) octetStr = address.slice(startIndex, startIndex + 3); octets[octet] = parseInt(octetStr); } } return this.validOctets(octets); } }