mermshaus: Array-Work

Beitrag lesen

Danke für die Antwort.

Du brauchst in $new kein 2D-Array, die Subnetze bilden per Definition einen präfixfreien Code. Die errechneten $iplong-Werte in f dürften bei realitätsnahen Inhalten im $a Array keine Doubletten bilden. Es sei denn, du hantierst mit historischen Daten und hast Subnetzangaben, die später aufgeteilt wurden.

Das verstehe ich leider nicht. Ich speichere die Bitlänge mit, weil ich meines Erachtens sonst nicht wissen kann, auf wie viele Stellen ich eine zu prüfende IP aus $b testen muss. Also, um etwa zwischen 192.168.0.0/16 und 192.168.0.0/24 unterscheiden zu können. Das war zumindest mein Gedanke dazu.

Du solltest auch den ip2long Wert [nicht] nach rechts shiften, sondern aus der Präfixlänge die Subnetzmaske bestimmen (über eine Lookup-Tabelle) und dann $iplong & $subnetmask als Key für $a2 verwenden. Dann kannst Du in g nämlich über alle 31 möglichen Subnetzmasken gehen und mit array_key_exists in $a2 prüfen, ob $b & $subnetmask enthalten ist. Bei vielen Einträgen in $a ist das effizienter.

Das könnte sinnvoll sein. Werde ich umstellen.

Eine weitere Optimierung wäre, in $a die tatsächlich genutzten Subnetzmasken als Keys eines Arrays zu sammeln und in g nur diese für die Suche zu nutzen.

Ja, das habe ich in meiner lokalen Version bereits drin.

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
);
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