Come calcolare l’intervallo IP quando viene fornito l’indirizzo IP e la maschera di rete?

Quando un IP-Range √® scritto come aaa.bbb.ccc.ddd / netmask ( notazione CIDR ) ho bisogno di calcolare il primo e l’ultimo indirizzo ip incluso in questo intervallo con C #.

Esempio:

Input: 192.168.0.1/25

Risultato: 192.168.0.1 – 192.168.0.126