Testen, ob ein Netzwerk in CIDR-Notation ein anderes Netzwerk überlappt

Ich suche nach einem PHP-Algorithmus, der effizient testet, ob ein cidr-notiertes Netzwerk ein anderes überlappt.

Grundsätzlich habe ich folgende Situation:

Array von CIDR-Adressen:

$cidrNetworks = array(
    '192.168.10.0/24',
    '10.10.0.30/20',
    etc.
);

Ich habe eine Methode, die dem Array Netzwerke hinzufügt, aber diese Methode sollte eine Ausnahme auslösen, wenn ein Netzwerk hinzugefügt wird, das sich mit einem bereits im Array vorhandenen Netzwerk überschneidet.

Also das heißt. Wenn 192.168.10.0/25 hinzugefügt wird, sollte eine Ausnahme ausgelöst werden.

Hat jemand eine Methode, um dies effizient zu testen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage