Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4512

Re: IP-Maske berechnen

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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