Тестирование, если сеть в нотации cidr перекрывает другую сеть
Я ищу алгоритм php, который эффективно проверяет, перекрывает ли одна сеть, отмеченная cidr, другую.
В основном у меня следующая ситуация:
Массив адресов cidr:
$cidrNetworks = array(
'192.168.10.0/24',
'10.10.0.30/20',
etc.
);
У меня есть метод, который добавляет сети в массив, но этот метод должен выдавать исключение при добавлении сети, которая перекрывается с сетью, уже находящейся в массиве.
Так что если добавлено 192.168.10.0/25, должно быть сгенерировано исключение.
Кто-нибудь имеет / знает / "может придумать" метод, чтобы проверить это эффективно?