Calcular todos os endereços dentro de uma sub-rede… para IPv6

Eu já vi muitas ótimas Exemplos de C # que demonstram como converter os endereços IPv4 fornecidos na notação CIDR (por exemplo, 192.168.0.1/25) em seus intervalos relevantes (192.168.0.1 - 192.168.0.126). Meu programa precisa ser capaz de fazer isso (para calcular todos os endereços na minha sub-rede local), mas também quero dar suporte ao IPv6.

Se o meu programa C # tiver todas as minhas informações típicas do ipconfig (endereço IPv4, máscara de sub-rede, endereço IPv6, endereço v6 link-local, gateway padrão) - como eu geraria uma lista de todos os endereços IPv6 na minha sub-rede local e enviá-los para o console?

questionAnswers(4)

yourAnswerToTheQuestion