CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
06.03.2010, 13:05:18
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 10
|
|
Problem mit Vergleichen einer IP
Hallo liebe Leser/innen,
ich habe da ein ganz merkwürdiges Problem, an dem ich mir die Zähne ausbeisse :(
Hintergrund:
Auf einem WIN- Server starte ich über SRVANY ein Script mit php-win. So weit, so gut.
Dieses Script soll im Grunde nichts anderes machen, als meine lokale IP via DynDNS zu überprüfen und bei Änderungen die neue IP in eine Datei schreiben (die per Include in die httpd.conf eingebunden ist) und den Apache neu starten. Auch das klappt so weit.
Was ums verrecken nicht geht ist, das ich, wenn der Fall eingetreten ist, diesen Vorgang in ein Logfile schreibe mit der alten und der neuen IP.
Egal was ich anstelle, die alte IP ändert sich nie?!?!?
Hier mal die einzelnen Dateien in der Hoffnung, das mir mal jemand auf die Sprünge helfen kann:
Das Script:
Code:
<?php
for (;;) {
$tmp_ip = array(); $zeilen = array();
$new_ip = gethostbyname('mein.selfip.net');
if (file_exists('lan_ip.conf') && strlen($old_ip) < 7) {
$zeilen = stripcslashes(file_get_contents('lan_ip.conf'));
$tmp_ip = explode('"', $zeilen);
$old_ip = $tmp_ip[1];
}
if ($old_ip != $new_ip) {
$file = fOpen('lan_ip.conf' , 'w');
fWrite($file , '# Generiert am '.date('d.m.Y').' um '.date('H:i:s')."\r\n");
fWrite($file , 'SetEnvIfNoCase Remote_Addr "'.$new_ip.'" dontlog');
fClose($file); unset($file);
exec ('"C:\Program Files (x86)\Apache\bin\httpd.exe" -k restart', $status, $return);
If ($return == '0') {
$apache = 'Apache korrekt neu gestartet';
} else {
$apache = 'ERROR : '.$return;
}
$file = fOpen('lan_ip.log' , 'a');
fWrite($file, 'date : '.date('Y-m-d - H:i:s').' | Old IP : '.$old_ip.' | New IP : '.$new_ip.' | '.$apache."\r\n");
fClose($file); unset($file);
$old_ip = $new_ip;
}
sleep(60);
}
?>
Die korrekt geschriebene lan_ip.conf:
Code:
# Generiert am 06.03.2010 um 13:02:43
SetEnvIfNoCase Remote_Addr "82.82.127.4" dontlog
Das immer falsch geschriebene Logfile:
Code:
date : 2010-03-06 - 13:01:49 | Old IP : 188.108.244.135 | New IP : 82.82.127.4 | Apache korrekt neu gestartet
date : 2010-03-06 - 13:02:46 | Old IP : 188.108.244.135 | New IP : 82.82.127.4 | Apache korrekt neu gestartet
__________________
... LG aus Kalledonien ...
Micha
Wir, die guten Willens sind, geführt von Ahnungslosen, versuchen für die Undankbaren das Unmögliche zu vollbringen. Wir haben schon soviel mit sowenig solange versucht, dass wir jetzt qualifiziert sind, fast alles mit nichts zu bewältigen.
|
06.03.2010, 14:22:12
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Problem mit Vergleichen einer IP
PHP-Code:
if (file_exists('lan_ip.conf') && strlen($old_ip) < 7) {
$zeilen = stripcslashes(file_get_contents('lan_ip.conf'));
$tmp_ip = explode('"', $zeilen);
$old_ip = $tmp_ip[1];
}
Wo kommt $old_ip her?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
06.03.2010, 14:45:21
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 10
|
|
AW: Problem mit Vergleichen einer IP
... beim ersten Start ist $old_ip NULL, also auch kürzer 7 Zeichen. Wenn die conf existiert, wird im Anschluss daran die $old_ip aus der Datei gefüllt. Wenn nicht, dann läuft auch die nächste IF durch, da in dem Fall ja auch $old_ip ungleich $new_ip ist.
Zum Schluss wird dann $old_ip auf die aktuelle IP gesetzt, damit nicht ständig Dateizugriffe entstehen.
Is doch richtig, oder nich?
__________________
... LG aus Kalledonien ...
Micha
Wir, die guten Willens sind, geführt von Ahnungslosen, versuchen für die Undankbaren das Unmögliche zu vollbringen. Wir haben schon soviel mit sowenig solange versucht, dass wir jetzt qualifiziert sind, fast alles mit nichts zu bewältigen.
|
06.03.2010, 18:41:25
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 10
|
|
AW: Problem mit Vergleichen einer IP
... Problem gelöst ;)
@vt1816: Danke! Du hast mich auf die richtige Spur gebracht...
Wenn php-win als Dienst läuft, schreibt er offensichtlich, zumindest bei mir, nichts in das ErrorLog *grummel* Da bin ich erst drauf gekommen, weil ich zu faul war, ständig den Dienst neu zu starten und der Einfachheit halber das Script im CMD- Fenster direkt habe mit php.exe laufen lassen. Dabei fielen dann zwei Dinge auf:
1.
Beim ersten Start ist $old_ip noch gar nicht definiert und somit läuft PHP dann auf einen entsprechenden Fehler *DuckUndWech*
2.
Im Gegensatz zu php.exe scheint php-win.exe seine Sachen nicht im Verzeichnis des laufenden Scriptes zu suchen / zu schreiben, sondern sonst wo; ich habe gleichnamige lan_ip.log an verschiedenen Stellen auf der Platte gefunden (Bahnhof Kofferklau'n?!). Nach Angabe eines Pfades an den entsprechenden Stellen klappt das nun.
__________________
... LG aus Kalledonien ...
Micha
Wir, die guten Willens sind, geführt von Ahnungslosen, versuchen für die Undankbaren das Unmögliche zu vollbringen. Wir haben schon soviel mit sowenig solange versucht, dass wir jetzt qualifiziert sind, fast alles mit nichts zu bewältigen.
|
06.03.2010, 20:38:35
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Problem mit Vergleichen einer IP
Zitat:
Zitat von M*I*B
... Problem gelöst ;)
@vt1816: Danke! Du hast mich auf die richtige Spur gebracht...
|
Dafür gibt es diese Community ...
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:44:15 Uhr.
|