Zum Hauptinhalt springen
claw
am
tools
Werkzeuge
Dokumente
Daoark
EN
Startseite
Startseite
/
Netzwerkwerkzeuge
›
>> 0; } function intToIp(n) { return [(n >>> 24) & 0xff, (n >>> 16) & 0xff, (n >>> 8) & 0xff, n & 0xff].join('.'); } var form = document.getElementById('f'); var resultArea = document.getElementById('result-area'); var resultContent = document.getElementById('result-content'); var resultMeta = document.getElementById('result-meta'); var errorMsg = document.getElementById('error-msg'); function showError(m) { errorMsg.textContent = m; errorMsg.classList.add('show'); } function clearError() { errorMsg.classList.remove('show'); } function clearResult() { resultArea.classList.remove('show'); } form.addEventListener('submit', function(e) { e.preventDefault(); clearError(); clearResult(); var ip = document.getElementById('ip').value; var cidr = parseInt(document.getElementById('cidr').value); if (!/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ip)) { showError('IP 格式错误'); return; } if (isNaN(cidr) || cidr < 0 || cidr > 32) { showError('CIDR 需 0-32'); return; } var ipInt = ipToInt(ip); var mask = cidr === 0 ? 0 : (0xffffffff << (32 - cidr)) >>> 0; var network = (ipInt & mask) >>> 0; var broadcast = (network | (~mask >>> 0)) >>> 0; var total = Math.pow(2, 32 - cidr); var usable = total - 2; var first = cidr >= 31 ? network : network + 1; var last = cidr >= 31 ? broadcast : broadcast - 1; var html = '
'; html += '
网络号
' + intToIp(network) + '/' + cidr + '
'; html += '
子网掩码
' + intToIp(mask) + '
'; html += '
广播号
' + intToIp(broadcast) + '
'; html += '
可用范围
' + intToIp(first) + ' ~ ' + intToIp(last) + '
'; html += '
总地址数
' + total + '
'; html += '
可用主机数
' + Math.max(0, usable) + '
'; html += '
'; resultContent.innerHTML = html; resultMeta.textContent = intToIp(network) + '/' + cidr; resultArea.classList.add('show'); }); document.getElementById('btn-clear').addEventListener('click', function() { document.getElementById('ip').value = '192.168.1.100'; document.getElementById('cidr').value = 24; clearError(); clearResult(); }); })();