IP Sperren



  • Hallo!
    Ich möchte für einen bestimmten Nutzer, dem seine IP ich kenne meine Seite sperren.
    Wie kann ich das bewerkstelligen?
    Geht es mit JavaScript oder so?
    Oder nur mit PhP?
    Ich weiß das er einen Proxy benutzen könnte, aber so schlau ist er nicht!

    Wenn mit PHP:
    Ich kann kein PHP, nur CSS, HTML und JavaScript und C++.
    Könnte mir jemand so ein Script schreiben und sagen wie ich das in meine HTML-Seite einbauen kann?
    Für Hilfe wäre ich sehr dankbar!!

    mfg CSS



  • hallo.

    1. unterstützt dein anbieter PHP?
      wenn nein dann geht nur JS aber wenn er es abschaltet dann kan er trotzdem auf deine seite gelangen.
      wie man das in php macht weis ich nicht hab die variable nicht im kopf wo das drinne steht müsste aber ungefähr so ausehen:
    <?php
    //das in jeder datei am anfang hinschreiben
    if(REMOTE_ADDR == "111.111.111.111")//hier die ip hin
    {
    header("Location: penner.htm");
    }
    ?>
    //dan der code der website
    

    in penner.htm schreibst du das er deine seite nicht angucken darf
    cu



  • Aber ich glaube der hat eine dynamische IP die lautet 62.46.192.??? .
    Kann ich sie ihm so auch sperren? Das ich statt denn genauen Zahlen irgendein Zeichen reinschreibe?

    mfg CSS



  • dafuer benutzt man regulaere ausdruecke



  • @CSS,
    so wie ich das sehe, willst du einen ganzen Adressenbereich sperren. Geht alles nur mit Server-Seitigen sachen z.B. PHP.

    Einfache Methode:

    $ip = $_SERVER['REMOTE_ADDR'];
    if ( substr( strrchr($ip, "."), 1, $ip ) == "62.46.192." )
      header( "Location: redirect.php" );
    

    PS: Habs nicht getestet...daher die Index und Positionswerte eventuell um eins nach vorn oder hinten versetzen 🙂 Kann mir immer nicht merken ob PHP bei 0 oder 1 anfängt zu zählen.



  • @vadimiron Wie soll man das mit regulären Ausdrücken machen???

    @Hermann
    Wo soll ich das einfügen und PHP fängt bei null an zu zählen ist nämlich gleich wie C++!

    mfg CSS



  • Reguläre Ausdrücke sind schon fast etwas übertrieben - du könntest es mal so in der Art versuchen:

    if (0 === strpos ($_SERVER['REMOTE_ADDR'],'62.46.192.')) {
     // Hier jetzt deine Behandlung für zu blockenden User
     // z.B. Fehler-Seite, Error403, o.ä.
    }
    


  • Hallo!

    Ich habe jetzt folgenden Code eingeben mit einer IP:

    <?php
    if (0 === strpos ($_SERVER['REMOTE_ADDR'],'10.221.40.')) {
    header("Location: error.html");
    }
    ?>
    

    funzt aber noch immer nicht!
    Was habe ich falsch gemacht??

    mfg CSS



  • Mach mal statt dem heade ein echo um zu schauen, ob er in den Block reinkommt. Wenn ja, dann liegt der Fehler wohl daran, dass du eine relative URL verwendet hast - in der Doku wird es so gemacht:

    header("Location: http://".$_SERVER['HTTP_HOST']
                          .dirname($_SERVER['PHP_SELF'])
                          ."/".$relative_url);
    


  • nicht === sondern ==
    cu



  • Nein, es muss schon === heißen:

    Anmerkung: Die Meldungen "Zeichen bei Position 0 gefunden (character found at position 0)" und "Zeichen nicht gefunden (character not found)" werden oft falsch ausgelegt. Hier die Unterscheidung:

    // in PHP 4.0b3 und danach:
    $pos = strpos ($mystring, "b");
    if ($pos === false) { // Achtung: 3 Gleichheits-Zeichen
       // nicht gefunden...
    }
    
    // in Versionen vor 4.0b3:
    $pos = strpos ($mystring, "b");
    if (is_string ($pos) && !$pos) {
       // nicht gefunden...
    }
    

    Wenn du == verwendest, dann wird die Bedingung sowohl bei false, als auch bei 0 erfüllt - mit === muss aber auch der Typ übereinstimmen, somit wird die Bedingung nur bei 0 erfüllt 😉



  • okay ...
    ich habe jetzt folgenden Code in meine HP geschrieben:

    <?php
    if(REMOTE_ADDR == "10.221.40.94")
    {
    header("Location: error.html".$_SERVER['HTTP_HOST']
                          .dirname($_SERVER['PHP_SELF'])
                          ."/".$relative_url);
    }
    ?>
    

    funzt aber noch immer nicht. Ich kenne mich mit PHP eben nicht aus.
    Aber ich werde mir jetzt ein gutes Buch zulegen, soll ich PHP 4 oder 5 lernen.

    Was kist an diesm Code falsch oder habe ich etwas falsch gemacht??

    mfg CSS



  • Wenn dann so:

    <?php
    if($_SERVER['REMOTE_ADDR'] == "10.221.40.94")
    {
     header('Location: '.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/error.html');
    }
    ?>
    


  • Und wieder einmal ....

    <?php
    if($_SERVER['REMOTE_ADDR'] == "10.221.43.111")
    {
     header('Location: '.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/error.html');
    }
    ?>
    
    <html>
    
      <head>		<title>Willkommen auf Jakob Buchgraber's Homepage</title>
    
    <script language="JavaScript"><!--
    
    var hoehe;
    var breite;
    
    hoehe=screen.height;
    breite=screen.width;
    
    if (hoehe == 600 && breite == 800) {	
    
    	window.location.href = "error.html";
    }
    
    	--></script>
    
    <!--Meta Daten -->
    
    <meta http-equiv="content-type" content="text/html; iso-8859-1">
    <meta http-equiv="content-language" content="german,deutsch,DE,AT,CH,US"
    <meta name="DESCRIPTION" content="Jakob Buchgraber, erfahren Sie mehr über C++-Programmierung und Jakob Buchgraber">
    <meta name="keywords" content="C++ Programme und Code,C++ Turtorial, Fotos, Finnland, 4s Klasse, Hauptschule St.Ruprecht/Raab, Österreicher, Gästebuch, Jakob Buchgraber, Buchgraber Jakob,">
    <meta name="author" content="Jakob Buchgraber">
    <meta name="publisher" content="Jakob Buchgraber">
    <meta name="copyright" content="Jakob Buchgraber">
    <meta name="revisit-after" content="7 days">
    <meta name="page-topic" content="Computer & Internet">
    <meta name="page-type" content="Link-Liste">
    <meta name="robots" content="INDEX,FOLLOW">
    <frameset cols="230,*" border="0" frameborder="0" framespacing="0">
    
    	<frame src="navigation.html" noresize="noresize" scrolling="no" name="Navigation" />
    
    	<frame src="inhalt.html" noresize="noresize" scrolling="auto" name="Inhalt" />
    
    </frameset>
    
     <noframe> Diese Webseite verwendet Frames. Um das Angebot sehen zu können benötigen Sie einen Browser der Frames unterstützt </noframe>
    
      </head>
    
    <body>
    </body>
    </html>
    

    Das ist mein Code, waws hab ich falsch genmacht.
    Mein Server unterstützt PHP.

    Trotzdem vielen Dank für eure Hilfe!!

    mfg CSS



  • Teste doch mal mit einem einfachen echo anstelle von header, ob er überhaupt in diesen Block springt - und hast du auch die richtige IP angegeben?

    <?php
    if($_SERVER['REMOTE_ADDR'] == "10.221.43.111")
    {
     echo 'Eigentlich sollte man dich blocken';
    }
    else
    {
     echo $_SERVER['REMOTE_ADDR'];
    }
    ?>
    


  • Am besten ein exit; nach dem Header, das kann sehr viel helfen, denn die Umleitung muss nicht unbedingt stattfinden.

    Also

    <?php
    if($_SERVER['REMOTE_ADDR'] == "10.221.43.111")
    {
     header('Location: '.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/error.html');
      exit;
    }
    ?>
    


  • Guten Morgen!

    @flenders
    Ich habe deinen Code ausprobiert, ich komme aber gar nicht in den IP Bereich rein!!
    Meine IP finde ich in der Konsole mit "ipconfig" heraus!
    Ich benutzte ADSL und den Firfox 0.9 Browser, habe es aber auch im IE 6.0 SP2 versucht.
    Es funzt nicht!!

    @supertux
    Deinen Code habe ich auch ausprobiert, funzt auch nicht!

    @alle

    Ich glaube nicht das ihr etwas falsch macht, sondern ich!

    Werde aber weiter hin alles versuchen!

    mfg CSS



  • Verwendest du evtl. eine recht alte PHP-Version ( < 4.1.0 ) ?



  • Keine Ahnung müsst meinen Hoster fragen.

    MfG CSS



  • Und was genau funktioniert nicht? Fehlermeldungen?


Anmelden zum Antworten