Nell'ambito delle reti informatiche, la suddivisione di una rete IP in sotto-reti più piccole, o subnetting, è una pratica fondamentale per gestire efficacemente l'allocazione degli indirizzi IP e migliorare la sicurezza e l'efficienza della rete. Un aspetto cruciale di questa pratica è il calcolo del numero di indirizzi IP disponibili in una subnet. In questo articolo, esploreremo come implementare questa funzionalità utilizzando JavaScript, fornendo uno script che può essere facilmente integrato o modificato per vari scopi di gestione della rete.
Prima di immergerci nel codice, è importante comprendere alcune basi del subnetting. Un indirizzo IP è composto da due parti: l'identificatore della rete e quello dell'host. La maschera di sottorete, spesso espressa in notazione CIDR come /24
, determina come l'indirizzo IP è diviso.
La formula per calcolare il numero di indirizzi IP in una subnet è:
Numero di indirizzi = 2(32-lunghezza della maschera)
Questo numero include l'indirizzo di rete e l'indirizzo di broadcast, che non sono utilizzabili per i dispositivi individuali.
Ecco un esempio di funzione JavaScript che calcola il numero di indirizzi IP utilizzabili in una subnet data la notazione CIDR:
function calcIPAddresses(cidr) {
// Estrai la lunghezza della maschera dalla notazione CIDR
const maskLength = parseInt(cidr.split('/')[1], 10);
// Calcola il numero totale di indirizzi nella subnet
const totalAddresses = Math.pow(2, 32 - maskLength);
// Sottrai 2 per escludere l'indirizzo di rete e di broadcast
return totalAddresses - 2;
}
Per utilizzare questa funzione, si può semplicemente passare la notazione CIDR della subnet di interesse:
console.log(calcIPAddresses("192.168.1.0/24")); // Output: 254
console.log(calcIPAddresses("192.168.1.0/30")); // Output: 2
In conclusione, il calcolo del numero di indirizzi IP disponibili in una subnet è essenziale per la pianificazione e la gestione delle reti. L'implementazione di questa funzionalità in JavaScript permette agli sviluppatori e agli amministratori di rete di integrare facilmente questa capacità nei loro strumenti e dashboard personalizzati.