IP Auslesen !
Marcus Vieß
0 Marcus Vieß0 Pit
Gleich vorweg ich kann kein CGI Programmieren, habe mal in andere Prgsprachen reingesehen, habe also Grundkentnisse.
Nun zu meiner Frage :
Ich benutzte ein Counterscript welches IP Adressen zwecks Reloadsperre ausliest.
Nun habe ich bei meinen Providern (Puretec & Strato) unterschiedliche einstellungen !
Strato :
# schreiben der letzten IP
while ($#logip >= 2){
shift @logip;
}
push (@logip,"$ENV{'HTTP_CLIENT_IP'}\n");
open(logfile,">log.txt") &FEHLER("Kann Datei <b>log.txt</b> nicht erstellen.");
print (logfile @logip);
close(logfile);
Puretec :
while ($#logip >= 2){
shift @logip;
}
push (@logip,"$ENV{'REMOTE_ADDR'}\n");
open(logfile,">log.txt") &FEHLER("Kann Datei <b>log.txt</b> nicht erstellen.");
print (logfile @logip);
close(logfile);
also nun zur frage gibt es da vielleicht eine Universalmöglichkeit ???
Wie gesagt bei Puretec läüft alles ! Bei Strato gibt es seit einiger Zeit Probleme, gibt es vielleicht Möglichkeit 3 welche bei beiden Providern läuft und nun auch bei Strato funzelt ???
gruss,
Marcus ...
Achja, was ich vergessen habe zu erwähnen.
Beide Möglichkeiten flaufen nur bei den jeweiligen Providern also die Strato version läuft nicht bei Puretec und umgekehrt.
Deshalb die Frage zur universalversion !
gruss,
Marcus ..
Hallo Marcus,
das liegt daran, dass wahrscheinlich unterschiedliche Umgebungsvariablen vom den Web-Servern her freigegeben sind. Probier doch einfach mal erst die eine, und wenn die leer ist die andere Variable auszulesen.
Statt :
push (@logip,"$ENV{'HTTP_CLIENT_IP'}\n");
Etwa so:
$ipAddresse=$ENV{'HTTP_CLIENT_IP'};
if($ipAdresse eq ""){
$ipAdresse=$ENV{'REMOTE_ADDR'};
}
push(@logip,$ipAdresse."\n");
Chiau
Pit