Hello,
Grundidee für PHP:
erstmal die Übereinstimmungen suchen
$supernet_long = (($iplong_1 & $iplong_2) | (~$iplong_1 & ~$iplong_2));
Aber Achtung, das ist ggf. eine 64-Bit-Zahl, deshalb beim Weiterarbeiten mit decbin() nur die rechten 32 Stellen benutzen substr(..., -32). Darin mit strpos() die Position der ersten "0" bestimmen. Das ist dann schon das CIDR-Suffix.
Die Bitmaske ist dann der linke Teil bis zur "0", aufgefüllt auf 32 Stellen mit "0". Zurückwandeln mit bindec().
Die Netz-IP ergibt sich dann wieder aus Bitmaske & IP[x] (egal welche von beiden) + CIDR-Suffix.
Für den IP-Check kann man auch filter_var() benutzen.
Glück Auf
Tom vom Berg
--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.