[gelöst] Aktuelle IP-Adresse in Script einfügen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
MichaelG
Beiträge: 5
Registriert: 18.07.2005 11:10:17

[gelöst] Aktuelle IP-Adresse in Script einfügen

Beitrag von MichaelG » 24.02.2007 09:56:39

Moinsen,

bislang konnte ich ja so ziemlich alle Fragen zu meinem Debian-System (sarge) über die Forensuche und das Wiki lösen.
Aber jetzt steh ich vor einer Aufgabe, die ich nicht hinbekomme :roll:

Für einen Server, der für einen internen Clientbereich dienen soll, muss ich in das Serverscript (server.sh) die jeweils aktuelle öffentliche IP eintragen.
Der Server hängt hinter einem Router, über diesen wird auch mein dyndns-Account aktualisiert. Die erforderlichen Ports sind auf den Debian-PC weitergeleitet. Beim manuellen Eintragen der IP funktioniert der Server problemlos. Allerdings ist es nicht so prickelnd, nach einem Reconnect des Providers das alles wieder manuell zu ändern.

Im Wiki bin ich auf diesen Beitrag gestossen und habe die verschiedenen dort angegebenen Möglichkeiten versucht. Allerdings erfolglos.

Die IP soll im Script in dieser Zeile eingetragen werden:

Code: Alles auswählen

thisIP=
Zur IP-Ermittlung habe ich zuvor folgende Zeile (abgewandelt mit VAR aus Vorschlag Wiki) eingetragen:

Code: Alles auswählen

VAR=`lynx -source http://www.wieistmeineip.de  | awk -F ">" '/<h1>.*<\/a>*/ {print$3}' | awk -F "<" '/.*/ {print$1}'`
Und dann in der IP-Zeile das eingetragen

Code: Alles auswählen

thisIP=$VAR
Beim Aufruf des Servers bekomme ich die Meldung
:host unknown
und die IP wird nicht erkannt.
Im Log des Servers sehe ich nur die Angabe Datum/Uhrzeit und nicht die IP.

Wo liegt mein Fehler? :oops:
Zuletzt geändert von MichaelG am 24.02.2007 10:31:56, insgesamt 1-mal geändert.

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 24.02.2007 10:25:47

Code: Alles auswählen

VAR=`lynx -source http://checkip.dyndns.org | sed 's/^.* Address: \([0-9.]\+\).*$/\1/g'`
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
MichaelG
Beiträge: 5
Registriert: 18.07.2005 11:10:17

Beitrag von MichaelG » 24.02.2007 10:31:21

Vielen Dank Savar, das war die Lösung :D

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 24.02.2007 10:41:26

Wobei ich ja bei diesen Beispielen oftmals nicht verstehe, warum man lynx nutzt. Ich bevorzuge ein simples wget (lynx habe ich nirgends installiert, wget überall :-) )
In diesem Fall also

Code: Alles auswählen

VAR=`wget -q -O - http://checkip.dyndns.org/ | sed 's/^.* Address: \([0-9.]\+\).*$/\1/g'`
MfG GoKi
:wq

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 24.02.2007 11:08:30

...ich hätte auch noch einen... :wink:

Code: Alles auswählen

VAR=`wget -q -O - http://checkip.dyndns.org | sed 's/[^0-9.]//g'`
oder als lynx_und_awk-Lösung

Code: Alles auswählen

VAR=`lynx -source http://www.wieistmeineip.de | awk -F "[<>]" '/^Ihre IP/ {print$3}'`
Gruß fuzzy

Benutzeravatar
MichaelG
Beiträge: 5
Registriert: 18.07.2005 11:10:17

Beitrag von MichaelG » 24.02.2007 13:54:58

Dank Euch für die Alternativlösungen :D

Jetzt tüftle ich noch an einem Script, das die IP regelmässig (~2h) auf Änderungen prüft und ggfls. das Serverscript bei Änderungen (Reconnect) neu startet. :roll:

Antworten