Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dynamische IP in htaccess-Datei ersetzen

Frage Entwicklung Batch & Shell

Mitglied: tende

tende (Level 1) - Jetzt verbinden

23.01.2007, aktualisiert 17.10.2012, 6988 Aufrufe, 9 Kommentare

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.

Mit freundlichen Grüßen Dirk
Mitglied: bastla
23.01.2007 um 21:18 Uhr
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:
01.
AuthType Basic 
02.
AuthName "Service-Bereich" 
03.
AuthUserFile /usr/verwaltung/web/.htusers 
04.
Require valid-user 
05.
Order deny,allow 
06.
Deny from all 
07.
Allow from 
- 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
01.
Satisfy any
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:
01.
copy /y vor.txt + Aktuelle_IP.txt + nach.txt htaccess
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
Bitte warten ..
Mitglied: tende
23.01.2007 um 21:59 Uhr
Nabend bastle

Danke erstmal für die schnelle Antwort. Also das sieht schonmal richtig gut aus. Mal ne Frage: Warum machen die anderen User das mit dem Texte auslesen immer so kompliziert, also mit diesen for-Befehl und den ganzen Zusatzzeichen? Kann das sein das das mit dem 4DOS zusammen hängt? Kann aber eigentlich nicht da ich gerade sehe das 4DOS kein Standard von Microsoft ist.

Also die ausgebene Datei hat am Ende so ein quadratisches Zeichen, ich glaube das meintest du mit dem ASCII-Wert 26 (dez). Ob das nun einen Einfluss hat auf die ganze Datei weis ich noch nicht, aber man könnte es doch irgend wie mit einem Befehl löschen oder? Ist das eigentlich ein Bug oder warum wird das da angehängt?

Besten Dank erstmal.
PS: Wie lange beschäftigst du dich schon mit programmieren? Nur so aus reiner Neugierde
Mit freundlichen Grüßen Dirk
Bitte warten ..
Mitglied: bastla
23.01.2007 um 23:29 Uhr
Hallo tende!

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 ... Sagt Dir "Sinclair ZX Spectrum" etwas?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
24.01.2007 um 00:03 Uhr
Moin tende,

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.

01.
::----------WriteNewHtAccess.bat 
02.
@echo off & Setlocal  
03.
:: Set IP=[aus IPConfig-Ausgabe ermitteln, z.B. 
04.
for /f "delims=: tokens=2" %%i in ('IPConfig^|find "IP-A"') do @set myIP=%%i 
05.
(Echo AuthType Basic 
06.
Echo AuthName "Service-Bereich" 
07.
Echo AuthUserFile /usr/verwaltung/web/.htusers 
08.
Echo Require valid-user 
09.
Echo Order deny,allow 
10.
Echo Deny from all 
11.
Echo Allow from %myIP% 
12.
Echo Satisfy any) >htaccess
Finde ich lesbarer als diese Copy/b-Lösung.
Dafür ist allerdings eine FOR-Anweisung drin... *zugeb*

Gruß
Biber
Bitte warten ..
Mitglied: bastla
24.01.2007 um 00:23 Uhr
@Biber

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
Bitte warten ..
Mitglied: 16568
24.01.2007 um 01:48 Uhr
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
Bitte warten ..
Mitglied: tende
24.01.2007, aktualisiert 17.10.2012
Hallo Biber, bastla und Lonesome_Walker

Nochmals besten Dank für eure Mühen. Ich sehe aber gerade das ich vergessen habe mitzuteilen, das ich über einen Router ins Internet gehe. Damit wird das mit der IP-Adresse auslesen über IP-Config nicht funktionieren, wenn das so vorgesehen ist mit deiner Batch, Biber. Soweit ich weis kann man mit windowsinternen Mitteln die dynamische IP hinter einem Router nicht auslesen, sondern brauch eine Webseite die einem diese IP anzeigt, dann auslesen und weiterverarbeiten, aber wem sag ich das, bist doch der Biber . Darum benutze ich auch das Programm BarrMon.exe. Das mit dieser Lösung auf dieser Seite http://www.administrator.de/forum/providerip-des-dsl-routers-auslesen-2 ... geht bei meinem Router nicht.

Und zu DynDNS: das hatte ich auch schon überlegt, nur muss man sich da auch wieder anmelden und dann läuft ja die eigene IP irgendwie darüber. Wird da nicht protokolliert welche Seiten ich angesurft habe oder verstehe ich die Funktion jetzt irgendwie falsch? Ich bin da nämlich vorsichtig mit der ganzen Anmelderei.

Mit freundlichen Grüßen Dirk
Bitte warten ..
Mitglied: 16568
24.01.2007 um 12:23 Uhr
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
Bitte warten ..
Mitglied: tende
24.01.2007 um 12:55 Uhr
Hi Walker

Achso läuft das, mit einem Tool. Ich dachte das läuft direkt über diese Seite. Naja, werds mir mal näher anschauen.

Ich kann mich nur wiederholen, die Leute die solche Sachen tiefgreifender verstehen, beneide ich. Bin zwar schon ein paar Jährchen im Netz, aber bei mir muss es einfach funktionieren, obwohl ichs natürlich geil fände wenn ich programmieren könnte. Aber dafür fehlt mir irgendwie die Ausdauer.

Dank dir und noch einen schönen Tag.

Mit freundlichen Grüßen Dirk
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Exchange Server
gelöst Exchange und dynamische IP - Notlösung (4)

Frage von ArnoNymous zum Thema Exchange Server ...

Informationsdienste
gelöst Dienstplan als ics bzw. ical-Datei zur Verfügung stellen (7)

Frage von FreshRawrr zum Thema Informationsdienste ...

Internet
Selbstgehostete B2B Datei-Sharing-Portale wie ProjectSend (3)

Frage von Hannes-Schurig zum Thema Internet ...

Batch & Shell
Powershell - In Textdatei suchen und ersetzen (3)

Frage von Raaja89 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...