Was stimmt an dieser Methode nicht?

  • Hi,

    kann mir vielleicht jemand sagen was an der Methode falsch is? Testweise soll aktuell nur ein + oder - ausgegeben werden. Es wird aber leider immer nur - angezeigt, obwohl die IP in der Liste steht. Die Datei exisiert und ist auch lesbar. Kann eventuell die Variable $this->ipAddress hier nicht richtig gelesen werden? Bei meine anderen Methode um die Flaggen bzw. Land anhand der IP anzuzeigen funkioniert es auch.


    Inhalt der Datei unter $filePath, immer eine IP pro Zeile, es sind aktuell circa 50.000.

    Bash: abuseipdb-s100-30d.ipv4
    63.238.82.23
    64.23.238.121
    68.183.153.238
    .
    .
    usw.
  • Hallo,


    was steht denn in $this->ipAddress?

    Wird dort ggf. eine IPv6 repräsentiert? Das WSC speichert IPv4 Adressen als IPv4-Mapped IPv6 Adresse, also als/im IPv6 Kontext.

    Tipp nebenher:

    Nutze StringUtil::trim() um konsistent zu bleiben.

    Edited 5 times, last by itsmeJAY (April 19, 2024 at 11:02 PM).

  • Hmm, du hast Recht. var_dump gibt mir bei IPv4 sowas ::ffff:5b5c:f134 und danke für den Tipp mit StringUtil.
    Ich bin ein absoluter Anfänger was PHP angeht, zumindest bei OOP :D

  • Hallo,

    ich bin nur am Handy, aber du kannst sowas probieren wie:

    PHP
    $ipAddress = new wcf\util\IpAddress($this->ipAddress);
    
    if (($ipv4 = $ipAddress->asV4()) !== null) {
                       // Logic …
                       
                       if ($ipInFile === $ipv4) {
                        fclose($fileHandle);
                        return '+';
                    }
                   } 

    Edit:

    ::ffff:5b5c:f134

    Du erkennst am Präfix ::ffff:, dass es sich um eine IPv4 handelt.

  • Geht jetzt wie es soll. Wenn die IP in der lokalen Sperrliste von AbuseIPDb ist, wird das FA-Icon neben dem Gast angezeigt.
    Die Liste beinhaltet nur die IPs der letzten 30 Tage und einem Rating von 100%, also IPs die ganz sicher bösartig sind.

    Code
    $userIP = UserUtil::convertIPv6to4($this->ipAddress);

    so habe ich das nun gelöst, danke nochmal itsmeJAY

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!