Dynamische IP in htaccess-Datei ersetzen
Hallo zusammen
Bin ganz neu und habe schon des öfteren gute Tipps auf dieser Seite gefunden. Leider kommen ich mit meinem Problem nicht weiter, darum habe ich mir erlaubt mich anzumelden und einfach mal nachzufragen ob einer mir helfen kann.
Worum gehts: Ganz einfach, ich will in meiner htaccess-Datei die bei meinem Domainhoster liegt mit meiner aktuellen dynamischen IP-Adresse aktuallisieren. Meine Homepage soll erstmal für alle gesperrt werden und nur dann wenn ich es will, diese halt per Batchdatei freigeben indem ich meine akuelle IP-Adresse in die htaccess-Datei reinschreiben lasse.
Um meine aktuelle IP-Adresse auf dem System zu speichern oder in die Zwischenablage zu kopieren, benutze ich das Programm BarrMon.exe. Mit dem Befehl "start C:\Programme\BarrMon\BarrMon.exe D:\Aktuelle_IP.txt" speichere ich die IP auf d: ab in der Datei "Aktuelle IP.txt". Mit dem Befehl "start C:\Programme\BarrMon\BarrMon.exe clipboard" wird die aktuelle IP in die Zwischenablage kopiert.
Soweit, sogut, nun weis ich aber nicht wie man die IP- aus der Zwischenablage oder aus der Textdatei auslesen und dann in untenstehende htaccess-Datei reinschreiben kann.
.htaccess-Datei für Web-Verzeichnis /service
AuthType Basic
AuthName "Service-Bereich"
AuthUserFile /usr/verwaltung/web/.htusers
Require valid-user
Order deny,allow
Deny from all
<-Hier soll die Anweisung "Allow from"samt meiner aktuelle IP-Adresse rein.
Satisfy any
Das mit dem Ftp-Upload habe ich auch schon hinbekommen:
FTP-Upload.bat
ftp.exe -n -i -s:daten.ftp
exit
Inhalt der daten.ftp-Datei:
OPEN ftp..de
USER
passwort
cd webseiten
send d:\htaccess
disconnect
quit
Ich weis das es da den for-Befehl gibt für das Auslesen von Text in Dateien, leider kommen nach dem Befehl immer soviele Zusatzzeichen die mich irgendwie leicht verwirren
. Außerdem weis ich nicht wie das mit der Angabe geht, wo welches Zeichen oder Wort in welcher Zeile und welcher Spalte ausgelesen bzw. ersetzt werden kann. Das ist mir irgendwie alles zu hoch. Ich beneide die Leute darum die sowas können. Habe mich nun mehrere Stunden am Stück bemüht, Infos für Anfänger zu finden mit denen ich auch was anfangen kann.
Ich hoffe man kann mir ein bischen helfen. Ist ja eigentlich wenn mans kann keine große Sache.
Dank schonmal im Vorraus.
MfG Dirk
Bin ganz neu und habe schon des öfteren gute Tipps auf dieser Seite gefunden. Leider kommen ich mit meinem Problem nicht weiter, darum habe ich mir erlaubt mich anzumelden und einfach mal nachzufragen ob einer mir helfen kann.
Worum gehts: Ganz einfach, ich will in meiner htaccess-Datei die bei meinem Domainhoster liegt mit meiner aktuellen dynamischen IP-Adresse aktuallisieren. Meine Homepage soll erstmal für alle gesperrt werden und nur dann wenn ich es will, diese halt per Batchdatei freigeben indem ich meine akuelle IP-Adresse in die htaccess-Datei reinschreiben lasse.
Um meine aktuelle IP-Adresse auf dem System zu speichern oder in die Zwischenablage zu kopieren, benutze ich das Programm BarrMon.exe. Mit dem Befehl "start C:\Programme\BarrMon\BarrMon.exe D:\Aktuelle_IP.txt" speichere ich die IP auf d: ab in der Datei "Aktuelle IP.txt". Mit dem Befehl "start C:\Programme\BarrMon\BarrMon.exe clipboard" wird die aktuelle IP in die Zwischenablage kopiert.
Soweit, sogut, nun weis ich aber nicht wie man die IP- aus der Zwischenablage oder aus der Textdatei auslesen und dann in untenstehende htaccess-Datei reinschreiben kann.
.htaccess-Datei für Web-Verzeichnis /service
AuthType Basic
AuthName "Service-Bereich"
AuthUserFile /usr/verwaltung/web/.htusers
Require valid-user
Order deny,allow
Deny from all
<-Hier soll die Anweisung "Allow from"samt meiner aktuelle IP-Adresse rein.
Satisfy any
Das mit dem Ftp-Upload habe ich auch schon hinbekommen:
FTP-Upload.bat
ftp.exe -n -i -s:daten.ftp
exit
Inhalt der daten.ftp-Datei:
OPEN ftp..de
USER
passwort
cd webseiten
send d:\htaccess
disconnect
quit
Ich weis das es da den for-Befehl gibt für das Auslesen von Text in Dateien, leider kommen nach dem Befehl immer soviele Zusatzzeichen die mich irgendwie leicht verwirren
Ich hoffe man kann mir ein bischen helfen. Ist ja eigentlich wenn mans kann keine große Sache.
Dank schonmal im Vorraus.
MfG Dirk
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49638
Url: https://administrator.de/forum/dynamische-ip-in-htaccess-datei-ersetzen-49638.html
Ausgedruckt am: 22.04.2025 um 08:04 Uhr
9 Kommentare
Neuester Kommentar
Hallo Dirk und willkommen im Forum!
Eine einfache Lösung könnte so aussehen:
Vorbereitung:
Erzeuge eine Datei "vor.txt" mit dem Inhalt vor der IP-Adresse - aus Deinem Beispiel oben also:
- dabei nicht auf die Leerstelle hinter "Allow from " vergessen!
Erzeuge eine zweite Datei "nach.txt" mit dem Inhalt nach der IP-Adresse, derzeit also nur
Falls diese Zeile auch vor dem "Allow from " stehen dürfte (kann ich - zumindest derzeit - nicht abschätzen), wäre es noch einfacher. Ev benötigst Du in der Datei "nach.txt" am Anfang eine Leerzeile - einfach austesten.
Durchführung:
Hinweis: Am Ende dieser entstandenen "htaccess" steht ein Byte mit dem ASCII-Wert 26 (dez) - bitte testen, ob das ein Problem darstellt. Ansonsten wär's das gewesen.
HTH
bastla
Eine einfache Lösung könnte so aussehen:
Vorbereitung:
Erzeuge eine Datei "vor.txt" mit dem Inhalt vor der IP-Adresse - aus Deinem Beispiel oben also:
AuthType Basic
AuthName "Service-Bereich"
AuthUserFile /usr/verwaltung/web/.htusers
Require valid-user
Order deny,allow
Deny from all
Allow from
Erzeuge eine zweite Datei "nach.txt" mit dem Inhalt nach der IP-Adresse, derzeit also nur
Satisfy any
Durchführung:
copy /y vor.txt + Aktuelle_IP.txt + nach.txt htaccess
HTH
bastla
Hallo tende!

Warum FOR? Damit erzeugt man in Batch eine Schleife (einen zu wiederholenden Programmteil) - so kann zB beim Bearbeiten von Textdateien jede Zeile einzeln behandelt werden (um beispielsweise aus einer Liste von Dateinamen für jede einzelne Datei eine Aktion ausführen zu können - etwa das aktuelle Datum in den Namen einfügen). Bei Deiner Aufgabenstellung ist eine solche Vorgangsweise nicht unbedingt erforderlich.
Sagt Dir "Sinclair ZX Spectrum" etwas?
Grüße
bastla
Warum machen die anderen User das mit dem Texte auslesen immer so kompliziert, also mit diesen for-Befehl und den ganzen Zusatzzeichen?
Zu diesen "anderen" Usern würde ich mich durchaus auch zählen. Warum FOR? Damit erzeugt man in Batch eine Schleife (einen zu wiederholenden Programmteil) - so kann zB beim Bearbeiten von Textdateien jede Zeile einzeln behandelt werden (um beispielsweise aus einer Liste von Dateinamen für jede einzelne Datei eine Aktion ausführen zu können - etwa das aktuelle Datum in den Namen einfügen). Bei Deiner Aufgabenstellung ist eine solche Vorgangsweise nicht unbedingt erforderlich.
...so ein quadratisches Zeichen ... Ist das eigentlich ein Bug oder warum wird das da angehängt?
It's not a bug, it's a feature: Damit wird das Dateiende angezeigt. Dazu habe ich übrigens noch eine Idee: Schreib direkt nach dem "copy" noch ein "/b"PS: Wie lange beschäftigst du dich schon mit programmieren?
Schon seit dem letzten Jahrtausend ... Grüße
bastla
Moin tende,
Ausnahmsweise würde ich diesem Fall einer mehrzeiligen Lösung den Vorzug geben,
weil es dann eventuell etwas pflegbarer wird.
Ich würde die aktuelle IP ermitteln (GetIP.bat-Beispiel u.a. hier im Forum), in eine Variable %MyIP% speichern und alles in einer Batchdatei abfackeln.
Finde ich lesbarer als diese Copy/b-Lösung.
Dafür ist allerdings eine FOR-Anweisung drin... *zugeb*
Gruß
Biber
Warum machen die anderen User das mit dem Texte auslesen immer so kompliziert?
Habe auch eben zum ersten Mal gesehen, dass es ja viel einfacher geht und weinte bitterlich.Ausnahmsweise würde ich diesem Fall einer mehrzeiligen Lösung den Vorzug geben,
weil es dann eventuell etwas pflegbarer wird.
Ich würde die aktuelle IP ermitteln (GetIP.bat-Beispiel u.a. hier im Forum), in eine Variable %MyIP% speichern und alles in einer Batchdatei abfackeln.
::----------WriteNewHtAccess.bat
@echo off & Setlocal
:: Set IP=[aus IPConfig-Ausgabe ermitteln, z.B.
for /f "delims=: tokens=2" %%i in ('IPConfig^|find "IP-A"') do @set myIP=%%i
(Echo AuthType Basic
Echo AuthName "Service-Bereich"
Echo AuthUserFile /usr/verwaltung/web/.htusers
Echo Require valid-user
Echo Order deny,allow
Echo Deny from all
Echo Allow from %myIP%
Echo Satisfy any) >htaccess
Finde ich lesbarer als diese Copy/b-Lösung.
Dafür ist allerdings eine FOR-Anweisung drin... *zugeb*
Gruß
Biber
@Biber

Wenn's wirklich nur die paar Zeilen in der "htaccess" sein sollen, gebe ich dir völlig Recht. Wenn die sich andererseits praktisch nie ändern sollten, kann ich weiterhin ganz gut mit der "Klebe"-Variante leben (wobei ich mich immer noch frage, ob man nicht vielleicht doch die letzte Zeile auch noch oben reinpacken könnte).
Meine Grundidee war ansonsten: Nimm, was schon mal da ist, und baue nur den "missing link" ein - eine Vorgehensweise aus dem Volkshochschulkurs "Angewandte Faulheit" ...
Und, ganz im Ernst: für die analytische Feinarbeit verlasse ich mich gerne darauf, dass Du schon noch vorbeischauen wirst.
Grüße
bastla
Dafür ist allerdings eine FOR-Anweisung drin... *zugeb*
Ist uns doch allen schon passiert (ich hab' mich ja auch schon geoutet ...) Wenn's wirklich nur die paar Zeilen in der "htaccess" sein sollen, gebe ich dir völlig Recht. Wenn die sich andererseits praktisch nie ändern sollten, kann ich weiterhin ganz gut mit der "Klebe"-Variante leben (wobei ich mich immer noch frage, ob man nicht vielleicht doch die letzte Zeile auch noch oben reinpacken könnte).
Meine Grundidee war ansonsten: Nimm, was schon mal da ist, und baue nur den "missing link" ein - eine Vorgehensweise aus dem Volkshochschulkurs "Angewandte Faulheit" ...
Und, ganz im Ernst: für die analytische Feinarbeit verlasse ich mich gerne darauf, dass Du schon noch vorbeischauen wirst.
Grüße
bastla

Ich versteh' Euch ehrlich gesagt alle nicht...
Warum doktert Ihr hier an einem Hamster mit Äxten rum?
Er soll sich doch bei DynDNS einen Account sichern.
Dann die DynDNS-Adresse in der .htaccess eintragen.
Der Server löst die IP auf, tada...
Aufwand:
1 Minute, um einen Account zu registrieren, und 1 Minute, um das automatische Update-Tool zu installieren.
Lonesome Walker
PS: Biber, von Dir hätte ich mehr als 'nen Batch erwartet
Warum doktert Ihr hier an einem Hamster mit Äxten rum?
Er soll sich doch bei DynDNS einen Account sichern.
Dann die DynDNS-Adresse in der .htaccess eintragen.
Der Server löst die IP auf, tada...
Aufwand:
1 Minute, um einen Account zu registrieren, und 1 Minute, um das automatische Update-Tool zu installieren.
Lonesome Walker
PS: Biber, von Dir hätte ich mehr als 'nen Batch erwartet

DynDNS anmelden, Tool laden.
Tool mit den Daten des Accounts füttern.
Wird nix mitprotokolliert; was denn auch?
Da hängt ein Router dazwischen, und dann ist es schon Essig mit Benutzer-Daten.
Können schließlich mehrere User dahinter sitzen...
Außerdem:
Das Tool könntest Du Dir sogar selbst nachschreiben, gibt nämlich den Quelltext dazu, weil opensource.
Somit nix mit Ausspionieren
Lonesome Walker
Tool mit den Daten des Accounts füttern.
Wird nix mitprotokolliert; was denn auch?
Da hängt ein Router dazwischen, und dann ist es schon Essig mit Benutzer-Daten.
Können schließlich mehrere User dahinter sitzen...
Außerdem:
Das Tool könntest Du Dir sogar selbst nachschreiben, gibt nämlich den Quelltext dazu, weil opensource.
Somit nix mit Ausspionieren
Lonesome Walker