Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4507
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: IP-Maske berechnen |
| Date | 2019-05-28 12:05 +0200 |
| Message-ID | <gl4ffbFc35nU1@mid.individual.net> (permalink) |
| References | (3 earlier) <qcebpe$1g0$1@news.albasani.net> <l3enee93lfs0934fmprni2ogvajcbalibh@neppi.net> <qchd7c$t1h$1@news.albasani.net> <gl3e26F59h7U2@mid.individual.net> <qcinoc$aba$1@news.albasani.net> |
Klaus Ketelaer:
> Am 28.05.2019 um 02:35 schrieb Arno Welzel:
>> Klaus Ketelaer:
>>
>>> Am 27.05.2019 um 12:22 schrieb Willi Marquart:
>>>> Klaus Ketelaer schrieb:
>>>>
>>>>>
>>>>> Die Maske 134.119.0.0/20 soll den IP-Bereich
>>>>>
>>>>> 134.119.0.1 bis 134.119.15.254
>> [...]
>>> Nicht dass die Umsetzung schwer wäre, aber ganz so banal
>>> ist es doch nicht, denn eine IP-Adresse besteht nunmal
>>> nicht aus Nullen und Einsen. Ein wenig mehr Arbeit ist
>>> das schon. Für meine Bedürfnisse sind es dann über 200
>>> Zeilen Code geworden.
>>
>> Ähm...?
>>
>> Also für einen Adressbereich die Netzwerkmaske zu berechnen sind
>> wirklich nur zwei oder drei Befehle. Deine 200 Zeilen Code haben
>> definitiv nicht nur Netzwerkmasken berechnet.
>
> Dann wird es wohl doch etwas Fertiges geben...
Nein, ich meinte auch mit eigenem Code sollte das mit ein paar Zeilen zu
machen sein. Selbst wenn man die Adressen erst in binäre Darstellung
umbaut und dann "zu Fuß" die einzelnen Bits vergleicht, komme ich nicht
auf 200 Zeilen Code.
Deshalb hatte ich die Vermutung, dass Du meintest damit nicht nur die
Ermittelung der Netzwerkmaske für eine gegebene Anfangs- und Endadresse
eines IPv4-Subnetzes.
Ein Beispiel auf die Schnelle - in Aktion zu sehen auf
<https://arnowelzel.de/samples/ipv4mask.php>:
<?php
$address1 = '134.119.0.1';
$address2 = '134.119.15.254';
$address1Binary = substr(
'00000000000000000000000000000000' . decbin(ip2long($address1)),
-32);
$address2Binary = substr(
'00000000000000000000000000000000' . decbin(ip2long($address2)),
-32);
$mask = 32;
while (true) {
if (substr($address1Binary, 32-$mask, 1) !=
substr($address2Binary, 32-$mask, 1)) {
break;
}
$mask--;
if ($mask == 0) {
break;
}
}
$network = long2ip((int)bindec(
substr(substr($address1Binary, 0, $mask) .
'00000000000000000000000000000000', 0, 32)));
echo sprintf(
'Address range: %s - %s, network: %s/%d',
$address1, $address2, $network, $mask);
?>
--
Arno Welzel
https://arnowelzel.de
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
IP-Maske berechnen Klaus Ketelaer <noreply@spambouncer.de> - 2019-05-26 12:10 +0200
Re: IP-Maske berechnen Claus Reibenstein <4spamersonly@kabelmail.de> - 2019-05-26 16:26 +0200
Re: IP-Maske berechnen Ralph Aichinger <ra@pi.h5.or.at> - 2019-05-26 16:41 +0200
Re: IP-Maske berechnen Claus Reibenstein <4spamersonly@kabelmail.de> - 2019-05-27 11:14 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-27 11:28 +0200
Re: IP-Maske berechnen Ralph Aichinger <ra@pi.h5.or.at> - 2019-05-27 11:57 +0200
Re: IP-Maske berechnen Willi Marquart <usenet@neppi.net> - 2019-05-27 15:28 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-27 15:36 +0200
Re: IP-Maske berechnen Ralph Aichinger <ra@pi.h5.or.at> - 2019-05-27 15:41 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-26 16:59 +0200
Re: IP-Maske berechnen Klaus Ketelaer <noreply@spambouncer.de> - 2019-05-26 17:36 +0200
Re: IP-Maske berechnen Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2019-05-26 16:58 +0000
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-27 08:08 +0200
Re: IP-Maske berechnen Willi Marquart <usenet@neppi.net> - 2019-05-27 12:22 +0200
Re: IP-Maske berechnen Willi Marquart <usenet@neppi.net> - 2019-05-27 12:34 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-27 17:43 +0200
Re: IP-Maske berechnen Willi Marquart <usenet@neppi.net> - 2019-05-27 18:16 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-28 11:51 +0200
Re: IP-Maske berechnen Willi Marquart <usenet@neppi.net> - 2019-05-30 12:21 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-30 20:06 +0200
Re: IP-Maske berechnen Willi Marquart <usenet@neppi.net> - 2019-05-31 07:57 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-06-01 13:17 +0200
Re: IP-Maske berechnen Klaus Ketelaer <noreply@spambouncer.de> - 2019-05-27 21:19 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-28 02:35 +0200
Re: IP-Maske berechnen Klaus Ketelaer <noreply@spambouncer.de> - 2019-05-28 09:24 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-28 12:05 +0200
Re: IP-Maske berechnen Klaus Ketelaer <noreply@spambouncer.de> - 2019-05-30 09:05 +0200
Re: IP-Maske berechnen Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2019-05-30 07:11 +0000
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-30 20:10 +0200
Re: IP-Maske berechnen Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2019-05-28 15:40 +0200
Re: IP-Maske berechnen Klaus Ketelaer <noreply@spambouncer.de> - 2019-05-30 09:13 +0200
Re: IP-Maske berechnen Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2019-05-30 10:12 +0200
Re: IP-Maske berechnen Klaus Ketelaer <noreply@spambouncer.de> - 2019-05-30 14:26 +0200
Re: IP-Maske berechnen Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2019-05-30 14:41 +0200
Re: IP-Maske berechnen Arno Welzel <usenet@arnowelzel.de> - 2019-05-30 20:22 +0200
csiph-web