Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4512
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: IP-Maske berechnen |
| Date | 2019-05-30 10:12 +0200 |
| Organization | PointedEars Software (PES) |
| Message-ID | <2482341.mvXUDI8C0e@PointedEars.de> (permalink) |
| References | (3 earlier) <qcebpe$1g0$1@news.albasani.net> <l3enee93lfs0934fmprni2ogvajcbalibh@neppi.net> <qchd7c$t1h$1@news.albasani.net> <1859561.oMNUckLgyt@PointedEars.de> <qcnvpv$fvu$1@news.albasani.net> |
Klaus Ketelaer wrote:
> Am 28.05.2019 um 15:39 schrieb Thomas 'PointedEars' Lahn:
>> Klaus Ketelaer wrote:
>>> 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.
>>
>> Also ca. 190 zuviel:
>>
>> <?php
>> function ipv4_address_to_long ($ipv4_address)
>> {
>> $exponent = 32;
>> return array_reduce(
>> preg_split('/\./', $ipv4_address),
>> function ($carry, $component) use (&$exponent) {
>> $exponent -= 8;
>> return $carry + ($component << $exponent);
>> },
>> 0
>> );
>> }
>>
>> /* 16777216 */
>> echo ipv4_address_to_long('1.0.0.0');
>>
>
> Mit so einem Code hättest Du in meinem Laden ein Problem.
Das macht nichts; Dein Saftladen wird ja offensichtlich von einem
inkompetenten Möchtegern geführt, und ich (als ZCE PHP) würde da
also weder arbeiten noch arbeiten wollen (noch müssen).
> Den dürftest Du umschreiben, frei nach "Mach es so, dass es in 2
> Jahren auch noch jeder versteht".
Nuhr.
Das ist ganz normaler, sauberer, effizienter, moderner (und als
funktionierend getesteter) PHP-Code:
- Funktion mit lokaler Variable zur Vermeidung von Seiteneffekten:
<https://php.net/function>
- Auftrennung eines Strings in ein Array mit einem regulären Ausdruck
mit einer PCRE-Funktion (statt veraltet einer ERE-Funktion) –
OK, hier könnte man auch einfach
explode('.', $ipv4_address)
verwenden;
<https://php.net/preg_split>
<https://php.net/explode>
- Array-Funktion mit Callback (statt veraltet for-Schleife über ein Array)
<https://php.net/array_reduce>
- Closure mit Variablenreferenz.
<https://www.php.net/manual/de/functions.anonymous.php>
Lauffähig seit PHP 5.3 (also Stand 2009; zur Erinnerung: wir sind jetzt bei
PHP 7.0.33 oder höher).
> Zudem bist Du mal wieder mit den Absendern etwas durcheinander
> gekommen.
*Du* hattest behauptet, man bräuchte dafür über 200 Zeilen, oder?
>>> Frei nach: Es ist kein Problem, eine IP-Adresse händisch
>>> in eine Zahl umzurechnen, aber ip2long ist halt bequemer...
>> Ah, Du hast sie also auch gefunden :)
>
> Ja, vor Jahren...
Das merkt man. Mach mal ein Update.
--
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte
keine Kopien per E-Mail.
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