IP Bereich überprüfen, ob im Bereich x und y

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IP Bereich überprüfen, ob im Bereich x und y

    Hallo, meine Klasse weißt Fehler auf, vielleicht kann mir ja jemand ein Tip geben.

    PHP-Code:
    /**
     * IP Bereich überprüfen (bool)
     *
     */
    class IpCheck
    {

        
    /**
         * Der Funktion wird eine IP Adresse übergeben und gibt ein boolischen Wert zurück, ob dieser IP Bereich gesperrt ist.
         *
         * @param string $ip [$_SERVER['REMOTE_ADDR']]
         * @return bool
         */
        
    function check($ip)
        {
            
    $ip ip2long($ip);

            
    // IP Array aus dem Model holen
            // ip_ab = gesperrte IP
            // ip_bis = bis zu diesem IP Bereich gesperrt (ip_ab und ip_bis muß gesetzt sein)

            
    while($row mysql_fetch_assoc($r)){
                if(
    ip2long($row['ip_ab']) == $ip) {
                    return 
    false;
                }
                elseif(
    ip2long($row['ip_ab']) <= $ip && ip2long($row['ip_bis']) >= $ip) {
                    return 
    false;
                }
            }
            return 
    true;
        } 
    Wenn ich jetzt eine IP der Funktion übergebe, beispiel 87.188.248.xx dann müchte ich prüfen ob diese im Bereich 41.208.175.0 (ip_ab) und 41.208.175.255 (ip_bis) liegt.
    PHP-Code:
    if(41.208.175.0 <= 87.188.248.xx  && 41.208.175.255  => 87.188.248.xx ) {
      
    // Ja, liegt im Bereich
    }else{
      
    // Nein, liegt nicht im Bereich

    Zuletzt geändert von martinm79; 25.02.2010, 12:28.
    Gut geraten ist halb gewußt.

  • #2
    was hat die Code in der präsentierter Klasse mit der Problembeschreibung zutun?

    Code:
    select INET_ATON('$ip') between INET_ATON(ip_ab) and INET_ATON( ip_bis)
    Slava
    bituniverse.com

    Kommentar


    • #3
      Die Funktion ip2long() kann mit deiner 1.2.3.xx-Notation nichts anfangen.
      Mach es gleich per SQL wie Slava vorschlägt oder schau dir mal das an.

      Kommentar


      • #4
        Zitat von Slava Beitrag anzeigen
        was hat die Code in der präsentierter Klasse mit der Problembeschreibung zutun?

        Code:
        select INET_ATON('$ip') between INET_ATON(ip_ab) and INET_ATON( ip_bis)

        Das vekürzt den Code natürlich enorm. Ich kannte die MySql Funktion noch nicht.


        @onemorenerd Das mit dem xx am Ende war nur ein Beispeil. Ich wollte nicht meine IP veröffentlichen.

        In der Zwischenzeit habe ich auch das gefunden:
        Häufig benötigte Codeschnipsel - Wie kann ich prüfen, ob eine IP-Adresse in einem bestimmten Bereich liegt?

        Daran lag wohl auch bei mir der Fehler. Ich muß das erst nochmal in Ruhe prüfen.
        Vielen Dank vorab.
        Gut geraten ist halb gewußt.

        Kommentar


        • #5
          Hab ich was verpasst ... oder prüft man IP Bereiche heute nicht mehr über Masken?
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar

          Lädt...
          X