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.