Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Arno Welzel Newsgroups: de.comp.lang.php Subject: Re: IP-Maske berechnen Date: Sat, 1 Jun 2019 13:17:14 +0200 Lines: 29 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net ytohDVcv+3/ujJErXz5Nvg2CM70KF18IfunqGK933rA4sQQcBq Cancel-Lock: sha1:BJgsfeFUh2PoZwjQW3rVrJ6dSiw= Openpgp: preference=signencrypt In-Reply-To: Xref: csiph.com de.comp.lang.php:4520 Willi Marquart: > Arno Welzel schrieb: > >> Willi Marquart: >>> Das geht doch: >>> >>> >> $netz=ip2long("134.119.0.0"); >>> $broad=ip2long("134.119.0.255"); >>> $mask= ~($netz ^ $broad); >>> print(long2ip($mask)); >>> ?> >> >> Da kommt dann heraus: 255.255.255.0 >> >> Was ist da nun die CIDR-Maske? Also wie kommt man von dem Ergebnis auf >> 134.119.0.0/24? > > Ach ja, die klassische Netzmaske war ja gar nicht gesucht, dann zählen > wir halt die Einer im Ergebnis: > print ( substr_count( sprintf("%b",$mask),"1")); Stimmt - das ist eine einfache Lösung. -- Arno Welzel https://arnowelzel.de