Testando se uma rede em notação cidr sobrepõe outra rede
Eu estou procurando por um algoritmo php que teste eficientemente se uma rede notada cidr sobrepõe outra.
Basicamente eu tenho a seguinte situação:
Matriz de endereços da cidr:
$cidrNetworks = array(
'192.168.10.0/24',
'10.10.0.30/20',
etc.
);
Eu tenho um método que adiciona redes à matriz, mas esse método deve lançar uma exceção quando uma rede é adicionada que se sobrepõe a uma rede já existente na matriz.
Então, ou seja. se 192.168.10.0/25 for adicionado, uma exceção deverá ser lançada.
Alguém tem / know / "pode pensar em" um método para testar isso eficientemente?