PHP/Perl, Speichern/Überprüfen der IP-Adresse
Alexander P.
- cgi
0 Siechfred
Guten Tag,
mein Problem ist etwas schwieriger, trotzdem hoffe ich, dass mir jemand weiterhelfen kann. Es geht um ein PHP- und ein Perl-Script. Ich versuche mal zu beschreiben, was die beiden Scripte tun sollen.
Zum PHP-Script:
Beim Aufruf der PHP-Datei soll die IP-Adresse des Besuchers in einer Textdatei gespeichert werden. Am besten wäre es, wenn die Adressen fortlaufend gespeichert werden könnten, damit das ganze auch bei mehreren gleichzeitigen Zugriffen noch funktioniert.
Zum Perl-Script:
Wird das Perl-Script aufgerufen, soll es überprüfen, ob die IP-Adresse desjenigen, der das Script aufruft, in der Textdatei gespeichert ist, die das PHP-Script angelegt hat. Ist die IP-Adresse in der Datei vorhanden, soll das Script weiter ausgeführt werden. Ansonsten soll der Besucher auf eine Fehlerseite weitergeleitet und das Script abgebrochen werden.
Bitte fragt nicht, wozu ich das brauche. ;)
Ich weiß, dass es von mir viel verlangt ist. Es ist aber ziemlich wichtig für mich und ich kenne mich mit PHP/Perl kaum aus. Daher wäre ich für Hilfe äußerst dankbar.
Mit freundlichen Grüßen
Alexander P.
Guten Abend,
Zum Perl-Script:
Was hast du bisher programmiert? Zeig mal her!
mfg Siechfred
Tut mir leid, ich habe versucht, das Script zu posten, anscheinend ist es aber zu lang.
Dashalb poste ich jetzt doch, wofür ich das Script benötige.
Ich habe Probleme mit Deep-Links, Direktlinks von anderen Seiten auf meine Downloads. Da diesen Monat sehr viel Traffic angefallen ist, habe ich mir überlegt, wie man sicherstellen kann, dass Downloads nur von einem Link meiner Homepage aus funktionieren, ohne dass meine Besucher benachteiligt werden. Ich habe es bereits mit einer Überprüfung des Referers probiert, dies wird von einigen Seiten jedoch ausgetrickst.
Am wirkungsvollsten erschien es mir, alle PHP-Seiten, die auf einen Download verweisen, die IP-Adresse des Besuchers in einer externen Textdatei speichern zu lassen. Der Download-Link verweist auf ein Perl-Script, das für den Download zuständig ist. Dieses Perl-Script soll dann überprüfen, ob die Remote-IP in der vom PHP-Script angelegten Textdatei vorhanden ist. Falls ja, soll der Download gestartet werden, falls nicht, soll der Client auf eine Fehlerseite weitergeleitet werden.
Ich hoffe, dass meine Erklärung verständlich ist.
Schon mal vielen Dank!
Hallo,
Tut mir leid, ich habe versucht, das Script zu posten, anscheinend ist es aber zu lang.
Nee, irgendwas stimmt hier nicht: [pref:t=44778&m=244240]
Ich habe es bereits mit einer Überprüfung des Referers probiert, dies wird von einigen Seiten jedoch ausgetrickst.
Versuche es mal mit Cookies, die kannst du recht komfortabel mit dem Modul CGI.pm setzen. Das ganze könnte vereinfacht so aussehen:
1. Bei Aufruf der Startseite:
use CGI;
my $new_cookie = ( -name => 'allow_download',
-expires => '-1d',
-values => 'was_du_willst' };
print header( -cookie => $new_cookie );
2. Bei Aufruf eines Downloads:
use CGI;
my $check_cookie = ('allow_download');
if($check_cookie eq "") {
print "Download nicht moeglich.";
exit(1);
} else {
# Download starten
}
mfg Siechfred
An Cookies hatte ich noch gar nicht gedacht. :O
Ich werde es ausprobieren und anschließend Bericht erstatten.
Vielen Dank!
Ich habe das ganze jetzt eingebaut.
Leider wird der Download in jedem Fall gestartet, auch wenn noch gar kein Cookie angelegt wurde.
Die Datei sendfile.cgi:
#!/usr/bin/perl -w
use CGI;
my $check_cookie = ('allow_download');
if($check_cookie eq "") {
print "Download nicht moeglich.";
exit(1);
} else {
(Hier steht das eigentliche Script)
}
Habe ich da etwas falsch gemacht?
N'abend,
Leider wird der Download in jedem Fall gestartet, auch wenn noch gar kein Cookie angelegt wurde.
Hm, verstehe ich eigentlich nicht.
Wie hast du das zu setzende Cookie definiert?
mfg Torsten
Noch gar nicht. Deshalb dürfte der Download ja auch eigentlich nicht gestattet werden...