Ankündigung

Einklappen
Keine Ankündigung bisher.

Datei öffnen, Zeile suchen und löschen, Datei speichern

Einklappen

Neue Werbung 2019

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

  • Datei öffnen, Zeile suchen und löschen, Datei speichern

    Hallo, ich hoffe ich bin im richtigen Bereich. Bevor jemand Doppeltpost schreit, ich habe diese Frage schon im raspberrypi-forum gestellt und keine Lösung:
    https://forum-raspberrypi.de/forum/t...724#post554724
    Ich möchte gerne mit PHP eine .htaccess Datei einlesen, eine Zeile löschen und die Datei wieder speichern. Leider klappt das nicht so, wie ich das will.
    Script:
    PHP-Code:
    $remoteip $_SERVER['REMOTE_ADDR'];
    echo 
    $remoteip;
    echo 
    "<br />";
    $lesedatei file("/pfad/datei");
    print_r($lesedatei);
    echo 
    "<br />";
    $allow_from = ("allow from ");
    echo 
    $allow_from;
    echo 
    "<br />";
    $ersetzedurch = ("");
    echo 
    $ersetzedurch;
    echo 
    "<br />";
    $gesuchtezeile = ("$allow_from $remoteip");
    echo 
    $gesuchtezeile;
    echo 
    "<br />";
    foreach (
    $lesedatei as $zeile)
    {
    if (
    strpos($zeile,$gesuchtezeile) !== false)
        {
        echo 
    '$remoteip gefunden: $zeile';
        }
    else
        {
        echo 
    'Nichts gefunden, suche weiter. ';
        continue;
        }

    Ausgabe:
    Code:
    Array ( [0] => ErrorDocument 404 /404.html [1] => ErrorDocument 403 /403.php [2] => [3] => order deny,allow [4] => deny from all [5] => allow from 10.8.0 [6] => allow from 127.0.0.1 [7] => allow from 192.168.0 [8] => allow from 192.168.0.250 [9] => [10] =>.....72.71.70.69 [238] => allow from 23.22.21.20 )  
    
    allow from
    allow from 192.168.0.250
    Nichts gefunden, suche weiter. Nichts gefunden, suche weiter. Nichts gefunden, suche weiter. Nichts gefunden, suche weiter. Nichts......
    Hat jemand einen Tip für mich warum die Zeile 8, in meinem Fall die 192.168.0.250 nicht gefunden wird ?

  • #2
    Kannst du bitte den Inhalt von .htaccess auch zur Verfügung stellen?

    Kommentar


    • #3
      Das ist meine IP, mit der ich auf dem Webserver bin.
      Ein Problem ist schon mal gelöst.
      PHP-Code:
      <?php
      $remoteip 
      $_SERVER['REMOTE_ADDR'];
      $lesedatei file("/var/www/html/axel_freiburg/spielplatz/.test");
      //print_r($lesedatei);
      $allow_from = ("allow from");
      //echo $allow_from;
      $ersetzedurch = ("");
      echo 
      $ersetzedurch;
      $gesuchtezeile = ("$allow_from $remoteip");
      //echo $gesuchtezeile;
      foreach ($lesedatei as $zeile)
      {
      if (
      strpos($zeile,$gesuchtezeile) !== false )
          {
          echo 
      "Deine IP wurde gefunden. ";
          echo 
      "<br />";
          echo 
      'Um sie zu löschen, kopiere sie in das Feld und klicke auf "Löschen"';
          echo 
      "<br />";
          echo 
      "<br />";
          echo 
      'Das kopieren:';
          echo 
      $_SERVER['REMOTE_ADDR'];
          }
      }

      ?>
      Das funktioniert dann schon mal.
      Die .htaccess :
      Code:
      ErrorDocument 404 /404.html
      ErrorDocument 403 /403.php
      
      order deny,allow
      deny from all
      allow from 10.8.0
      allow from 127.0.0.1
      allow from 192.168.0
      allow from 192.168.0.250
      
      allow from 85.92.66.148
      #xml-sitemaps.com
      
      allow from 17.241.219.44
      #applebot
      
      allow from 34.89.185.14
      #google
      
      allow from 34.91
      allow from 66.249.76.93
      #google
      
      allow from 35.240.94
      #google
      
      allow from 52.167.144
      allow from 52.167.144
      allow from 40.77.167.236
      allow from 40.77.167.238
      allow from 66.249.69
      allow from 209.85.220
      allow from 77.88.5.136
      allow from 114.119.156.182
      allow from 114.119.143.25
      allow from 157.55.39.41
      allow from 167.248.133.120
      allow from 207.46.13.232
      
      php_flag register_globals "off"
      RewriteEngine on
      
      RewriteCond %{HTTP_USER_AGENT} ^CherryPicker [OR]
      RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Crescent [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
      RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
      RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
      RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
      RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
      RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
      RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
      RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
      RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
      RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
      RewriteCond %{HTTP_USER_AGENT} ^FunWebProducts [OR]
      RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
      RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Go-http-client/1.1 [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
      RewriteCond %{HTTP_USER_AGENT} ^GornKer [OR]
      RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
      RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
      RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
      RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
      RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
      RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Irvine [OR]
      RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
      RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
      RewriteCond %{HTTP_USER_AGENT} "^Java/1.8.0_352" [OR]
      RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
      RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Irvine [OR]
      RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
      RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
      RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
      RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
      RewriteCond %{HTTP_USER_AGENT} "^Linux Gnu (cow)" [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Microsoft.URL [OR]
      RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
      RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
      RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
      RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
      RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
      RewriteCond %{HTTP_USER_AGENT} ^NICErsPRO [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
      RewriteCond %{HTTP_USER_AGENT} ^oegp [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
      RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
      RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
      RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
      RewriteCond %{HTTP_USER_AGENT} ^python-requests [OR]
      RewriteCond %{HTTP_USER_AGENT} ^dloader(NaverRobot) [OR]
      RewriteCond %{HTTP_USER_AGENT} ^robertdavidgraham [OR]
      RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
      RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SearchExpress [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Siphon [OR]
      RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
      RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebBandit [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
      RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SearchExpress [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
      RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Siphon [OR]
      RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
      RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebBandit [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
      RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
      
      RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
      RewriteCond %{HTTP_USER_AGENT} ^Zeus [OR]
      RewriteCond %{HTTP_USER_AGENT} ^curl [OR]
      RewriteCond %{HTTP_USER_AGENT} "^Mozilla/5.0 zgrab/0.x" [OR]
      RewriteCond %{HTTP_USER_AGENT} ^ZyBorg
      
      RewriteRule ^(.*) http://127.0.0.1/ [R=301,L]
      
      RewriteCond %{REQUEST_URI} x0 [OR,NC]
      RewriteCond %{QUERY_STRING} x0 [OR,NC]
      RewriteCond %{REQUEST_URI} x1 [OR,NC]
      RewriteCond %{QUERY_STRING} x1 [OR,NC]
      RewriteCond %{REQUEST_URI} x2 [OR,NC]
      RewriteCond %{QUERY_STRING} x2 [OR,NC]
      RewriteCond %{REQUEST_URI} x3 [OR,NC]
      RewriteCond %{QUERY_STRING} x3 [OR,NC]
      RewriteCond %{REQUEST_URI} x4 [OR,NC]
      RewriteCond %{QUERY_STRING} x4 [OR,NC]
      RewriteCond %{REQUEST_URI} x5 [OR,NC]
      RewriteCond %{QUERY_STRING} x5 [OR,NC]
      RewriteCond %{REQUEST_URI} x6 [OR,NC]
      RewriteCond %{QUERY_STRING} x6 [OR,NC]
      RewriteCond %{REQUEST_URI} x7 [OR,NC]
      RewriteCond %{QUERY_STRING} x7 [OR,NC]
      RewriteCond %{REQUEST_URI} x8 [OR,NC]
      RewriteCond %{QUERY_STRING} x8 [OR,NC]
      RewriteCond %{REQUEST_URI} x9 [OR,NC]
      RewriteCond %{QUERY_STRING} x9 [NC]
      # Options +FollowSymlinks
      RewriteCond %{HTTP_REFERER} fashionjewelryshoponline\.com [NC]
      RewriteCond %{HTTP_REFERER} cigarettesonlineinfo\.com [NC]
      RewriteCond %{HTTP_REFERER} cheapcigarettesworld\.com [NC]
      RewriteCond %{HTTP_REFERER} bootsugg-canada\.com [NC]
      RewriteCond %{HTTP_REFERER} discountcigarettesworld\.com [NC]
      RewriteCond %{HTTP_REFERER} jacketssalesshop\.com [NC]
      RewriteCond %{HTTP_REFERER} northfacejacketireland\.com [NC]
      RewriteCond %{HTTP_REFERER} ninjacode\.info [NC]
      RewriteCond %{HTTP_REFERER} ugg4canada\.com [NC]
      RewriteCond %{HTTP_REFERER} cigarettesbuyer\.com [NC]
      RewriteCond %{HTTP_REFERER} northface-jakker\.net [NC]
      RewriteCond %{HTTP_REFERER} slotsfor\.com [NC]
      RewriteCond %{HTTP_REFERER} bestcigarettesshop\.com [NC]
      RewriteCond %{HTTP_REFERER} handmadeprimitivedoll\.com [NC]
      RewriteCond %{HTTP_REFERER} getdiscountcigarettes\.com [NC]
      RewriteCond %{HTTP_REFERER} casinocardgames\.ca [NC]
      RewriteCond %{HTTP_REFERER} blackjackfor\.com [NC]
      RewriteCond %{HTTP_REFERER} wolfslot\.com [NC]
      RewriteCond %{HTTP_REFERER} viagrashop4usa\.com [NC]
      RewriteCond %{HTTP_REFERER} schooldegreesource\.com [NC]
      
      RewriteRule .* - [F]
      
      RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
      RewriteRule ^(.*) $1? [L]
      Ausgabe:
      loesche_ip.jpg

      Kommentar


      • #4
        Zitat von fred0815 Beitrag anzeigen
        Hat jemand einen Tip für mich warum die Zeile 8, in meinem Fall die 192.168.0.250 nicht gefunden wird ?
        Beim Arbeiten mit file() sind die Zeilenenden ein den einzelnen Arrayelementen häufig die Ursache für Probleme: die bleiben nämlich standardmäßig erhalten wenn nicht FILE_IGNORE_NEW_LINES als zweiter Parameter übergeben wird (siehe Handbuch).

        Zitat von fred0815 Beitrag anzeigen
        Ein Problem ist schon mal gelöst.
        Und wo liegt dann noch das Problem?

        Zum Code:
        > $ersetzedurch = ("");
        Wofür die Klammern?

        > if (strpos($zeile,$gesuchtezeile) !== false )
        Es gibt die Funktion str_contains(), damit wird die Bedingung imho besser lesbar.

        > order deny,allow
        > deny from all
        Das scheint noch alter Code für Apache 2.2 zu sein, bei der Version 2.4 hat sich da was geändert.

        > php_flag register_globals "off"
        Die Einstellung gibt es schon ewig nicht mehr, die Zeile kann ersatzlos entfallen.

        Kommentar


        • #5
          Also, hier ist die Lösung:
          PHP-Code:
          <?php $remoteip $_SERVER['REMOTE_ADDR'];
          $lesedatei file("/pfad/datei");
          //print_r($lesedatei);
          $allow_from = ("allow from");
          //echo $allow_from;
          $ersetzedurch = ("");
          echo 
          $ersetzedurch;
          $gesuchtezeile = ("$allow_from $remoteip");
          //echo $gesuchtezeile;
          foreach ($lesedatei as $zeile)
          { if (
          strpos($zeile,$gesuchtezeile) !== false )    
          {    
          echo 
          "Deine IP wurde gefunden. ";
              echo 
          "<br />";
              
          $loeschezeile str_replace($gesuchtezeile$ersetzedurch$lesedatei);
          //    print_r($loeschezeile);
              
          $schreibedatei file_put_contents("/pfad/datei",$loeschezeile);
              echo 
          '<h2>Die IP ';
          echo 
          $remoteip;
          echo 
          ' wurde gelöscht</h2>';
              echo 
          "<br />";
              } else { 
          //echo "Nicht gefunden. ";
          }  }
          ?>
          <h2> Jetzt ist dir der Zugang zur Seite wieder verwehrt. </h2>
          <h1><a href="index.php" target="_self">Startseite </a>
          </h1>
          <?php $frei file_get_contents('/pfad/anderedatei.txt');
          if (
          intval($frei) == 0){ echo "Zur Zeit ist niemand freigeschaltet";
          } else { echo 
          "Anzahl Freischaltungen: $frei";
          ?>
          <br>
          <?php $filename '/pfad/anderedatei.txt';
          if (
          file_exists($filename)) {     echo "Zuletzt geprüft:<br />\n " date ("d.m.Y H:i:s"filemtime($filename));
          } echo 
          "<br />";
          ?>
          Wie kann man das Thema als erledigt kennzeichnen ?
          Und warum zerrupft es mir hier immer die Zeilenumbrüche im Code ?
          So sieht es jetzt aus:
          loesche_ip1.jpg

          Kommentar


          • #6
            Bei wechselnden IP-Adresse hat der Besucher aber dann alle 24 Stunden wieder was zu tun und was ist mit denjenigen, die eine IP-Adresse bekommen, die ein anderer schon freigeschaltet hat, ohne das der jetzt zugewiesene Benutzer das wollte?

            Wäre es nicht sinnvoller entsprechend eine Datei auf den PC des Anwenders zu kopieren, die einen einzigartigen Code (ID) enthält, die in der Datenbank gespeichert ist und so eine Verbindung zu den Daten des Nutzers herstellt? Die ID kann ja den aktuellen Timestamp enthalten, damit es garantiert keine 2 gleichen IDs gibt kombiniert mit zufälligen Zahlen und Buchstaben? Sonst würde ich als Nutzer alle 24 Stunden wieder freischalten lassen müssen oder meine IP-Adresse ständig wieder hinterlegen oder sehe ich das falsch?

            Ich denke mir, da sollen jene gesperrt werden, die nicht auf deine Seite wollen oder?

            Kommentar

            Lädt...
            X