Rolf b: Array-Work

Beitrag lesen

Das Zweierkomplementformat der Integers macht die Sache für Dich sogar einfacher. Sei "L" die Präfixlänge.

L     Subnetzmaske   Int-Wert     Rechnung
32    FFFFFFFF        -1          -pow(2,0)
31    FFFFFFFE        -2          -pow(2,1)
30    FFFFFFFC        -4          -pow(2,2)
29    FFFFFFF8        -8          -pow(2,3)
28    FFFFFFF0       -16          -pow(2,4)
...
2     C0000000       -1073741824  -pow(2,30)
1     80000000       -2147483648  -pow(2,31)

Zu beachten bei POW ist nur, dass das eine Float-Funktion ist und keine Integer-Funktion. Das hat aber den Vorteil, dass Du pow(2,31) berechnen kannst, ohne darüber nachdenken zu müssen ob dein PHP durch einen 32-bit oder 64-bit Compiler auf die Welt gekommen ist (weil $$+2^{31}$$ kein gültiger 32-bit integer ist, $$-(2^{31})$$ dagegen schon). Und weil die Bit-Operatoren von PHP ihre Operanden automatisch nach integer konvertieren, kannst Du damit einfach loslegen. Und selbst wenn PHP die pow-Funktion nach der Taschenrechner-Methode umsetzt ($$a^b = e^{b\cdot \ln a}$$), sollte es hinreichend genau sein, um nach INT-Konvertierung die Zweierpotenzen richtig zu treffen, weil die PHP floats laut Handbuch immer 64-bittig sind (also eigentlich double).

Also: Subnetzmaske = -pow(2, 32-l) und gut ist.

Ich kann hier nur nicht ausprobieren ob es eine versteckte Tücke dabei gibt, kein PHP zur Hand...

Rolf

0 74

Array-Work

TS
  • php
  1. 1
    Christian Kruse
    1. 0

      geschachtelte Arrays, IP-Listen aufeinander abgleichen, LÖSUNG und Dank

      TS
  2. 1
    mermshaus
    1. 0
      dedlfix
      1. 0
        mermshaus
        1. 0
          dedlfix
          1. 0
            mermshaus
            1. 0
              dedlfix
              1. 0
                mermshaus
                1. 0
                  Rolf b
                  1. 0
                    mermshaus
                    1. 0
                      Rolf b
                      1. 0
                        mermshaus
                        1. 0
                          TS
                          • netzwerk
                          • routing
                          1. 0
                            Christian Kruse
                            • netzwerk
                          2. 0
                            Auge
                            • netzwerk
                            • zu diesem forum
                            1. 0
                              TS
                              1. 0
                                Christian Kruse
                                1. 0
                                  TS
                                  1. 0
                                    Auge
                                    1. 0
                                      TS
                                      • menschelei
                              2. 0
                                Auge
                                1. 0
                                  Christian Kruse
                        2. 0
                          Rolf b
                          1. 0
                            TS
                            • php
                            • programmiertechnik
                            • sicherheit
                            1. 0
                              Christian Kruse
                          2. 0
                            mermshaus
                            1. 0
                              TS
                2. 0
                  TS
                  1. 0
                    TS
                  2. 0
                    Rolf b
  3. 0
    pl
    • perl
    1. 1
      Christian Kruse
      1. 0
        pl
        1. 0
          Christian Kruse
      2. 0
        TS
        • php
        1. 0
          pl
          1. 0
            TS
  4. 0

    Wertebreich Integer contra IPv4 in Long

    TS
    1. 0
      Matthias Apsel
      1. 0
        Der Martin
        1. 0
          Matthias Apsel
        2. 0
          TS
          1. 0
            Matthias Apsel
            1. 0
              TS
          2. 0
            Christian Kruse
            1. 0
              TS
              1. 0
                Christian Kruse
                1. 0
                  TS
      2. 0
        TS
        1. 0
          Matthias Apsel
          1. 0
            TS
            1. 0

              Lösung übersehen?

              Tagwächter
              1. 0
                Tagwächter
              2. 0
                TS
        2. 1
          Tagwächter
    2. 1
      Rolf b
      1. 0
        TS
      2. 0
        TS
        1. 0
          Tagwächter
          1. 0
            TS
            1. 0
              Tagwächter
  5. 1
    Tagwächter
    • php
    • programmiertechnik
    1. 0
      TS
      1. 0

        fail2ban kann das selbst!

        Tagwächter
        1. 0
          TS
          1. 0
            Tagwächter
            1. 0
              TS
        2. 0
          TS
          • php
          • programmiertechnik
          • webserver
          1. 0

            fail2ban - multible logfiles

            Tagwächter
            • linux
            • webserver
            1. 0
              TS
              1. 0
                Tagwächter
                1. 0
                  TS