FTP automatisch löschen

Diskutiere FTP automatisch löschen im Webmaster Hilfe / Programmierer Forum Forum im Bereich Computerprobleme; Hallo zusammen. Ich habe folgende Frage! Undzwar habe ich auf meiner Homepage eine IP Sperre mit php programmiert, die nach 3 mal besuchen der...

  1. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Hallo zusammen.

    Ich habe folgende Frage! Undzwar habe ich auf meiner Homepage eine IP Sperre mit php programmiert, die nach 3 mal besuchen der Seite, die Seite für die IP Sperrt.

    Das funktioniert auch alles super. Nur muss, wenn die Datei älter als 24h ist, die Datei wieder gelöscht werden. Und das manuell jeden Tag zu machen, wäre schwachsinnig. Gibt es da was, dass z.B. alle 10 Minuten testet, welche Dateien älter als 24h. sind und diese dann löscht?


    Grüße,
    emha
     
  2. Anzeige

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Kannst du doch am besten auch direkt über das PHP-Script machen. Ich weiß nicht genau ob man das Erstellungsdatum abfragen kann, ansonsten die Filename immer mit aktuellem Datum und alle die dem nicht entsprechen löschen mit unlink().
     
  4. #3 helidoc, 30.07.2009
    helidoc

    helidoc killed by a black pudding
    Moderator

    Dabei seit:
    01.06.2007
    Beiträge:
    3.647
    Zustimmungen:
    1
    Ort:
    Bluemchenwiese
    Löschen würde ich da garnichts...Speichere doch in deiner Liste die zu sperrenden IPs mit Datum, dann kannst in der Abfrage nur die IPs mit dem Datum des aktuellen Tages sperren lassen. Ob du das dann in einer Liste machst, oder für jeden Tag eine neue Liste anlegst sollte egal sein. Ich würde alles in eine Datei machen, dann hast du gleich eine Logdatei über die gesperrten IPs...
     
  5. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Sorry aber da würde ich auf jeden Fall wiedersprechen, Textfiles sind bei einer hohen Zeilenanzahl alles andere als performant. Sollte unbedingt für jeden Tag eine erstellte werden ob der Inhalt gelöscht wird oder nicht sei mal dahin gestellt. Wenn dann noch in den Files selber Zeilen entfernt bzw. bearbeitet werden sollen, setzt das vorraus das man sie in Array holen muss. Das könnte extreme Parsingzeiten mit sich bringen.
     
  6. #5 helidoc, 30.07.2009
    helidoc

    helidoc killed by a black pudding
    Moderator

    Dabei seit:
    01.06.2007
    Beiträge:
    3.647
    Zustimmungen:
    1
    Ort:
    Bluemchenwiese
    [quote='LowBob',index.php?page=Thread&postID=764895#post764895]Textfiles sind bei einer hohen Zeilenanzahl alles andere als performant. [/quote]
    Da ist batürlich was dran. Eine temporären Liste, die einmal täglich (in ein >>log geschrieben, und danach) gelöscht wird wäre da sicherlich besser.
     
  7. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Hey.

    Schonmal Danke für die Antworten =) Ich habe das so, dass wenn jetzt einer mit der ip (z.B. 192.168.0.1) auf die Homepage kommt geprüft wird ob diese IP schon dort war, wenn nicht, wird eine Datei (192.168.0.1.txt) angelegt und in diese wird eine "1" geschrieben.

    Sollte die IP schon da gewesen sein, wird einfach nur eine "1" geschrieben. Und dann wird haöt geprüft ob in der Datei 3 mal die 1 steht, wenn ja, wird für denjenigen die Seite gesperrt.


    Wie ganu muss ich das denn dann machen? Habe das nicht so ganz verstanden, wo ich was mit der Zeit machen soll und wie ich das überprüfen soll.

    Grüße,
    emha
     
  8. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Wenn ich mir das mal so durch den kopf gehen lasse kann man das definitiv noch verbessern. Wie wäre es denn das ganze mit SQL zu lösen dann sparst du dir die ganzen files, das durchsuchen des Verschnisses und das anschließende öffnen der Files. Mit SQL könntest du auch den ganzen vergleich von der Datenbank durchführen lassen.

    Wenn du bei dem System mit den IP-Adressen und Files bleiben möchtes, könntest du dir auch das öffnen der Dateien zum vergleichen sparen.

    Vorschlag für Dateinamen: "2009-07-03_192.168.0.1_1"
    Die kannst du dann einfach mit explode("_", $filename) behandeln und hast Datum, IP und Zugriffsanzahl in einer Array. Die Zugriffe erhöhst du dann einfach per rename($neu, $alt) und löschen kannst du anhand des Datums dann.
     
  9. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Per SQL habe ich auch schon überlegt, das schafe ich aber nichts selbst, dass müsste jemand anderes für mich machen. Da diejenigen dafür aber geld haben möchten habe ich mich gegen SQL entschieden.

    Ich denke, ich werde es mit Cronjobs machen. Ich habe hierzu jetzt eine Frage zu meinem Script.

    Code:
    <?
    	$ipTEST = $REMOTE_ADDR;
    	if(file_exists($REMOTE_ADDR.".txt"))
    	{
    		$zählerTEXT = zähler.".txt";
    		$zählerOPEN = fopen("$zählerTEXT", "a+");
    		$zählerGETS = fgets($zählerOPEN,1000);
    		$ausgabe=strlen($zählerGETS)+1;
    		print "<center>Es war(en) bisher $ausgabe Besucher hier!</center>";
    
    	}
    	else
    	{
    		$ipNEU = $REMOTE_ADDR.".txt";
     		$ipSPEICHER = "1";
     		$ipOPEN=fopen("$ipNEU","a+");
    		fwrite($ipOPEN, $ipSPEICHER);
    
    	
    		
    		$zählerTEXT = zähler.".txt";
    		$zählerOPEN = fopen("$zählerTEXT", "a+");
    		$zählerGETS = fgets($zählerOPEN,1000);
    		$bla = 1;
    		fwrite($zählerOPEN, $bla);
    		$ausgabe=strlen($zählerGETS)+1;
    		
    
    		print "<center>Es war(en) bisher $ausgabe Besucher hier!";
    	}
    ?>
    Nun werden die IP.txt's normal gespeichert, dort wo auch die index.php liegt. Ich möchte nun aber, dass die .txt Dateien in den Ordner "ip" kommen. Wie muss ich das nun machen?

    Grüße,
    emha
     
  10. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Das Unterverzeichnis gibts du einfach im Dateinamen mit an. Das Script solltest du nochmal überarbeiten, wenn ich das richtig sehe sind Syntaxfehler drin (habs nicht getestet). Umlaute sollte man in Scripts nicht benutzten. Wie ich vorher schon geschrieben habe sind geschick gewählte Dateinamen sinnvoller.
     
  11. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Also meinst du z.B. so

    Code:
    {
    		$ipNEU = /ip/$REMOTE_ADDR.".txt";
     		$ipSPEICHER = "1";
     		$ipOPEN=fopen("$ipNEU","a+");
    		fwrite($ipOPEN, $ipSPEICHER);
    Oder wie?Weil ich das schon probiert habe, dass aber nicht ging =) Das Script funktioniert wunderbar.


    Grüße,
    emha
     
  12. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Du musst Text schon als String reingeben $ipNEU = "/ip/".$REMOTE_ADDR.".txt"; und du musst es auch an 2 stellen im Script machen. Irgendwie hab ich das gefühl das Script ist nicht von dir :D
     
  13. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Ja, klar... Hätte ich auch drauf kommen können.

    Doch, das Script ist von mir. Das habe ich für eine Projektarbeit für die Schule "entwickelt".

    Grüße,
    emha
     
  14. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Leider funktioniert das so aber auch nicht...

    Code:
    <?
    	$ipTEST = $REMOTE_ADDR;
    	if(file_exists("/ip/".$REMOTE_ADDR.".txt"))
    	{
    		$zählerTEXT = zähler.".txt";
    		$zählerOPEN = fopen("$zählerTEXT", "a+");
    		$zählerGETS = fgets($zählerOPEN,1000);
    		$ausgabe=strlen($zählerGETS)+1;
    		print "<center>Es war(en) bisher $ausgabe Besucher hier!</center>";
    
    	}
    	else
    	{
    		$ipNEU = "/ip/".$REMOTE_ADDR.".txt";
     		$ipSPEICHER = "1";
     		$ipOPEN=fopen("$ipNEU","a+");
    		fwrite($ipOPEN, $ipSPEICHER);
    
    	
    		
    		$zählerTEXT = zähler.".txt";
    		$zählerOPEN = fopen("$zählerTEXT", "a+");
    		$zählerGETS = fgets($zählerOPEN,1000);
    		$bla = 1;
    		fwrite($zählerOPEN, $bla);
    		$ausgabe=strlen($zählerGETS)+1;
    		
    
    		print "<center>Es war(en) bisher $ausgabe Besucher hier!";
    	}
    ?>
     
  15. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Wie wäre es denn mal mit ner Fehlermeldung, für mich sieht der Syntax immer noch nicht ganz sauber aus. Ansonsten einfach mal den ordner IP anlegen oder den / vor ip weg nehmen.
     
  16. disler

    disler Erfahrener Benutzer

    Dabei seit:
    05.07.2007
    Beiträge:
    1.654
    Zustimmungen:
    0
    Ort:
    Schweiz
    mhhhmm, eine ip sperre ist grundsätzlich schlecht. Empfehle ich dir anders zu machen. Mit einer IP sperre bezweckst du nicht, einen einzelnen Computer auszusperren, sondern ein ganzes Netzwerk, und das ist nehme ich an nicht dein Ziel. Viele Leute surfen mit Ihren Internetanbieter mit der gleichen IP. Also wenn du z.B. die IP Adresse 192.168.XXX.XXX aussperrt, und die zum beispiel dem Anbieter XY gehört, sperrst du alle Kunden des anbieters XY, und ich nehme nicht an, dass dies das ziel ist, oder?

    Es gibt da andere methoden mit Cookies, Logins ect. um dieses Problem zu lösen.
     
  17. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Bei Cookies ist aber nicht gegeben das es 100%ig funktioniert, wenn die deaktiviert sind wirds dann garnicht funktionieren. Bei den IP´s wirds die Leute alle betreffen die am selben Anschluss hängen. Bei Welchem anbieter surfen denn mehrere Kunden auf der selben IP, das ist ja mehr als unbrauchbar und von der Umsetzung schwachsinnig?
     
  18. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Hallo zusammen.

    Tut mir Leid, dass ich jetzt erst zurück schreibe =)

    @LowBob

    Vielen, vielen Dank, damit hätte ich jetzt garnicht gerechnet =P Ich werde es gleich mal ausprobieren. Das Script bezweckt jetzt, dass alle Dateien, die älter als 24 Stunden sind gelöscht werden, richtig?

    Grüße,
    emha
     
  19. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Das bezweckt das alle ips vom vergangenen Tag gelöscht werden, könntest du allerding auch umschreiben. Dazu müsstest du dann in die Dateinamen noch die Uhrzeit mit aufnehmen und in der clear() function die mktimes anpassen.
     
  20. Anzeige

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  21. EmHa

    EmHa Benutzer

    Dabei seit:
    15.08.2008
    Beiträge:
    42
    Zustimmungen:
    0
    Nabend zusammen.

    Leider ging das nicht =( Ich habe hier jetzt mal was gemacht mit hilfe von php.net.

    Code:
    <?php$dir = 'ip/';$file1 = scandir($dir);print_r($file1);
    if( filectime($file1) == time() -1){unlink ($file1);}?>

    Damit lese ich nur meinen Ordner "ip" nach allen Dateien aus - Funktioniert super!
    Dann gebe ich nur zum test $file1 aus - Fuktioniert super!
    Dann will ich checken, welche Dateien älter als 1 Tag sind und sie dann löschen - Funktioniert nicht und hier liegt mein problem =(

    Dann kommt folgende Fehlermeldung:
    Code:
    Array ( [0] => . [1] => .. [2] => 2009-08-03_84.132.119.116_3 ) Warning: filectime() [function.filectime]: stat failed for Array in /home/webpages/lima-city/smsgamershouse/html/test2.php on line 6

    Ich vermute das das etwas mit dem Array zu tun hat, dass es sogesehen nicht jede Datei einzeln checkt. Ich hoffe ihr versteht was ich meine. Also ich möchte, dass jede Datei gechekct wird ob sie älter als 1 Tag ist, wenn ja, wird sie gelöscht, wenn nicht, dann nicht.

    Grüße,
    emha
     
  22. LowBob

    LowBob Erfahrener Benutzer

    Dabei seit:
    22.06.2009
    Beiträge:
    629
    Zustimmungen:
    0
    Ort:
    Lübeck
    Arbeite doch einfach mit dem Datum und Uhrzeit, filectime kannst du nur direkt auf Dateien anwenden und nicht auf Arrays.
     
Thema: FTP automatisch löschen
Besucher kamen mit folgenden Suchen
  1. ftp ordner automatisch leeren

    ,
  2. ftp verzeichnis automatisch löschen

Die Seite wird geladen...

FTP automatisch löschen - Ähnliche Themen

  1. firefox verknüpfung löschen nicht möglich

    firefox verknüpfung löschen nicht möglich: Hi zusammen, habe seit geraumer zeit ein seltsames problem mit einer firefox verknüpfung ( ohne icon ) auf dem desktop. diese lässt sich nicht...
  2. ein bestimmter Ordner lässt sicht nicht löschen, will Administrator Rechte

    ein bestimmter Ordner lässt sicht nicht löschen, will Administrator Rechte: hi, ein bestimmter Ordner lässt sicht nicht löschen, will Administrator Rechte, das Ding ist aber ich bin der Besitzter des Rechner's und hab...
  3. Excel und Word öffnet sich beim Hochfahren immer automatisch

    Excel und Word öffnet sich beim Hochfahren immer automatisch: Hallo, ich bekomme noch eine Krise. Irgendwann habe ich mal eingestellt, dass sich Excel und Word beim Hochfahren des Computers selbständig öffnen...
  4. PC startet nicht automatisch nach dem Strom angeschaltet wird

    PC startet nicht automatisch nach dem Strom angeschaltet wird: Hallo zusammen. Ich habe eine schaltbare Steckdose. Nach dem ich meinen PC herunterfahre, schaltet sich nach 2 Minuten automatisch die Stromzufuhr...
  5. PC automatisch starten und herunterfahren

    PC automatisch starten und herunterfahren: Hey Leute, als ich 14 oder 15 war, habe ich ein .rar Archive mit einem Passwort versehen und auf meinem PC gespeichert. Zwischendurch, hatte ich...