kostenloser Webspace werbefrei: lima-city


Umleitung für bestimmte IP-Ranges ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    alg

    alg hat kostenlosen Webspace.

    Hallo

    ich möchte bei Aufruf meiner Webseite durch bestimme IP-Ranges
    auf eine andere Seite umleiten, das klappt aber nicht ?!?

    also habe im BSP Code mal zwei IP-Ranges rein,
    nur wenn Besucher innerhalb dieser IP-Ranges ist, soll umgeleitet werden

    ABER ... ich werde auch mit allen anderen IPs umgeleitet
    keine Anhnung warum, habe doch eine Bedingung if (...)
    damit nur User umgeleitet werden, die in der definierten IP-Ranges sind

    was mache ich falsch ?!

    hier mein Code
    <?php 
    // ------------------------------------------------------ 
    
    $ip_ranges = array( 
    	array(	'5.255.253.000', 	'5.255.253.255'		), 
    	array(	'220.181.108.000', 	'220.181.108.255'	), 
    ); 
    
    // ------------------------------------------------------ 
    
    $userip = $_SERVER['REMOTE_ADDR']; 
    
    $location = 'umleitungseite.php'; 
    
    // ------------------------------------------------------ 
    
    function ipRangeRedir ($ip_ranges, $userip, $location) { 
    	
    	foreach($ip_ranges as $irange) { 
    		
    		$range_rlow = ip2long($irange[0]);
    		$range_high = ip2long($irange[1]);
    		
    		if ($range_rlow <= $userip && $userip <= $range_high) { 
    			
    			header ('HTTP/1.1 301 Moved Permanently'); 
    			header ('Location: '.$location); 
    			
    		}
    		else { 
    			// --- do something else ----
    		}
    	
    	}
    	
    	return true; 
    
    }
    
    
    
    // ------------------------------------------------------ 
    
    
    $run = ipRangeRedir($ip_ranges, $userip, $location); 
    
    
    // ------------------------------------------------------ 
    ?>



    ... was mache ich falsch ?!
    ... bzw wie (richtig) Umleitung nur für vor-definierte IP-Ranges machen ?

    Danke

    EDIT ... und Wichtig ... wie macht man das es auch mit IPv6 Adressen funktioniert ?!



    Beitrag zuletzt geändert: 25.10.2014 15:36:59 von alg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    So wie es aussieht ist der Fehler sehr einfach zu beheben: dir fehlt ein
    ip2long()
    für die
    $userip
    . Du solltest dann übrigens prüfen, ob bei genau diesem Schritt
    FALSE
    zurückkommt, denn dann handelt es sich vermutlich um IPv6 und das musst du anders behandeln.

    IPv6-Ranges sperren ist übrigens fraglich, ob das eine gute Idee ist. Schließlich wirst du damit mit hoher Warscheinlichkeit auch »Unschuldige« aussperren, wenn du nicht ganz genau aufpasst was du tust … das gilt übrigens auch für IPv4.

    Beitrag zuletzt geändert: 25.10.2014 15:59:51 von hackyourlife
  4. Autor dieses Themas

    alg

    alg hat kostenlosen Webspace.

    Hallo
    ok, das ip2long() für die $userip hatte ich vergessen

    habe jetzt vor die foreach() Schleife noch eingefügt:

    $userip = ip2long($userip); 
    if (FALSE === $userip) { break; return false; } // --- ipv6


    aber auch damit geht es nicht ... es werden immer alle IPs umgeleitet ?!

    ... EDIT

    Fehler gefunden, die IP-Ranges sind falsch definiert
    $ip_ranges = array( 
    	array(	'5.255.253.0', 		'5.255.253.255'		), 
    	array(	'220.181.108.0', 	'220.181.108.255'	), 
    );


    ein Bereich
    .000
    gibt es nicht, es geht von .0 bis .255
    also nicht 3 mal 0 (Null) als Block, eintsllige auch nur eine Ziffer ... 0,1,2,3, ... 9


    zu ipv6 und Sinn
    ... es muss doch auch in Zukunft möglich sein, bestimmte ips zu blocken
    oder just-in-time die Herkunft einer IP-Adresse zu ermitteln ?! (geoip / ip2loc)


    meine Webseite richtet sich nur an deutsch-sprachiges Publikum
    da will ich Aufrufe z.B. aus China, Russland, Brasilien, etc. umleiten
    denn laut meiner log-Datei und ein bischen Recherch waren fast alle IPs
    aus den besagten Ländern nur "böse" Bots (Spam / Email-Klau / Traffic ...)

    wenn diese "Neuen" ipv6 Adrssen so viel dynamischer sind,
    wird es dann noch Listen / sowas wie geoip / ip2loc geben ???

    PS: wie ich das sehe, arbeitet www.blocklist.de ... etc auch mit ipv4
    oder auch www.stopforumspam.com ... wie ist es fa mit ipv6 ?


    Beitrag zuletzt geändert: 26.10.2014 10:57:54 von alg
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!