Rolf b: Array-Work

Beitrag lesen

Man könnte bei der Umwandlung von $a nach $a2 noch Teilmengen rausnehmen.

$a = array(
    '62.120.0.0/8',
    '62.120.0.0/16' // <-- wird bereits durch Zeile darüber abgedeckt
);

Genau das meinte ich mit präfixfreiem Code. Dieses Array kann bei korrekter Subnetzdefinition nicht entstehen, weil Du die IPv4 Welt nicht auf diese Weise aufteilen kannst. In welches Subnetz müsstest Du die Adresse 62.120.47.11 denn nun routen?

Ausflug in die theoretische Informatik: Ein Code ist präfixfrei, wenn niemals ein Codewort Präfix eines anderen ist. Wenn ein Code die Wörter "AB" und "ABE" enthält, ist er nicht präfixfrei. Dein Array ist auch nicht präfixfrei, weil 62.120.0.0/8 als Präfix von 62.120.0.0/16 aufgefasst werden kann.

Wenn Du ein präfixfreies $a Array hast, kannst Du jeden Eintrag durch seine Basisadresse repräsentieren. Wenn du eine IP in $b dann der Reihe nach mit Subnetzmasken für die Präfixlängen von 1-32 maskierst und das Ergebnis in der Hashmap suchst, findest Du sie eindeutig. Die Optimierung ist, eine Liste der tatsächlich in $a verwendeten Präfixlängen zu speichern und nur diese Längen auszuprobieren. Eine Optimierung 2 wäre, für jede verwendete Länge eine eigene Hashtable zu erzeugen und diese Tables der Reihe nach durchzugehen. Okay, das ist dein 2D Array. Da die Suche in einer Hashtable (sprich: Array-Keys) aber in O(1) erfolgt, bringt das kaum etwas.

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