Dyndns-Client defekt?

Noch eine Notlösung für DUS.NET Kunden (evtl. gibts das ja auch bei anderen Providern):

Im Kundenbereich einloggen und unter SIP/IAX-Anschlüsse sieht man die registrierte IP :)

Marcus
 
Bei mir ist das Problem keineswegs erledigt, bin ich da jetzt der einzige mit dem Fehler?
 
Zurück zu Lösung von Alexander. Kann sich bitte jemand bereit erklären daraus ein GUI-Paket zu machen? Ich bin zur Zeit belegt, sonst würde ich es gerne tun. Alexander ist auch belegt und bevorzugt wahrscheinlich ehe die Skriptvariante.
Eingabemasken sind klar. Als Alternative würde ich noch Parameter aus AVM-Push-Mail auslesen. Aber nur alternativ, sonst auch eigene Felder definieren.

MfG
 
Hätte da noch einen Vorschlag: IP per FTP auf einen (eigenen) Webserver updaten/uploaden (reiner Text genügt). Ist einfacher als in die Mails zu kucken.

@gstrasser:
Nein, bei mir hat es letzte Nacht auch nicht geklappt.

Gruß
Markus
 
Geht aber zwischenzeitlich definitiv wieder. Vielleicht mal die Box neu starten lassen.
 
1. FTP würde ich dafür eher nicht nehmen wegen Unsicherheit
2. Ich weiß nicht, ob du dafür nicht noch einen FTP-Client brauchst, der per see auf der Box nicht vorhanden ist
3. Im ganz normalen Fall liegt deine Datei dann irgendwo ganz offen auf dem Server. Ok, im normalen DNS-Fall kann auch jeder die IP zum Hostnamen ermitteln, aber trotzdem finde ich es nicht besonders schön

Wie gesagt, die Methode von Alexander ist die Notlösung, nicht für täglichen Einsatz. Und im Notfall kann man schon seine Mails durchschauen.

MfG
 
Nein, kein GUI-Client, gerade nicht! UNIX-Prinzip: keep it simple. E-Mail hat jeder, Webspace nicht. GUI ist nett, wenn man die IP der Box kennt und heran kommt, was hier ja gerade nicht der Fall ist. Ich finde, jeder sollte dieses Skript als Fallback immer in der debug.cfg aktiviert haben - es hat auch den schönen Nebeneffekt, daß ich auf Arbeit mitkriege, wenn sich die Box neu verbunden hat. Durch den Dateianhang mit der Uptime-Info sehe ich auch gleich, ob es wegen eines Reboots war oder nicht. Kein Overhead, absolut zuverlässig und noch nützlich - mehr kann man von einem kleinen Skript nicht erwarten.
 
1. FTP würde ich dafür eher nicht nehmen wegen Unsicherheit
Beim smtp-Vorschlag wird auch das Passwort auch im Klartext übertragen.
2. Ich weiß nicht, ob du dafür nicht noch einen FTP-Client brauchst, der per see auf der Box nicht vorhanden ist
ftpput ist bei der Busybox dabei.
Wie gesagt, die Methode von Alexander ist die Notlösung, nicht für täglichen Einsatz. Und im Notfall kann man schon seine Mails durchschauen.
Ich hatte auch an einen anderen Zweck gedacht. Mit wget könnte man sich auch die IP holen und weiterverarbeiten. Ich habe auch teilweise das Problem, das die Gültigkeitsdauer der IP außerhalb meines Netzes zuhause ignoriert wird. Ok, ist halt eine interessante Lösung nur für mich. Hatte das jahrelang mit meinem fli4l so gemacht.

Gruß
Markus
 
Hi,

hab's mal das Skript für FTP abgeändert. Lade die Datei ip.txt auf meinen Webspace in ein passwortgeschütztes Unterverzeichnis. Sehe jetzt nicht, wo die Unsicherheit sein soll.

Und man kann dies auch in der rc.custom eintragen, die es mit freetz gibt.

Code:
# Create executable online status event handler
cat > /var/tmp/onlinechanged << 'EOF'
#!/bin/sh
if [ "$1" = "online" ] ; then
  get_ip > /var/tmp/ip.txt
  uptime >> /var/tmp/ip.txt
  ftpput -u username -p password server-ip remote-file /var/tmp/ip.txt
  rm -f /var/tmp/ip.txt
fi
EOF
chmod 755 /var/tmp/onlinechanged

Beste Grüße,
Whoopie
 
Die Unsicherheit liegt darin, daß die Zugangsdaten unverschlüsselt übertragen werden. Wenn jemand die abfängt, hat er Zugriff auf Deinen Web-Space.

Die Zugangsdaten beim Senden der Email mögen zwar auch unverschlüsselt sein, mit denen kann man jedoch nur Emails senden.
 
Kann sich bitte einer der sed grep - Kenner mir auf die Sprünge helfen, die Daten aus der ar7.cfg auszulesen und sie für Authentifizierung zu nutzen. Der Grund ist Folgender: Zumindest bei 1und1-Branding sind die Felder mit Standard-Daten des Standard-Mail-Accounts bei 1und1 gefüllt. Mit diesen Daten kann man die E-Mails verschicken.

Wie man an die Daten aus ar7.cfg kommt steht z.B. hier (nur Benutzername und Passwort, für den Servernamen muss man es noch erweitern):
Code:
allcfgconv -C ar7 -c -o - | sed -n -e '/emailnotify/,/}/p' | sed -n -e '/accountname/,/passwd/p'

Da ich mich aber mit sed und grep nicht so gut auskenne, komme ich nicht weiter, wie man die Variablennamen vom Wert trennt und den Wert weiter nutzt.

MfG
 
Kann sich bitte einer der sed grep - Kenner mir auf die Sprünge helfen, die Daten aus der ar7.cfg auszulesen und sie für Authentifizierung zu nutzen.
auf die Schnelle (aber weit vom Optimalen):
Code:
allcfgconv -C ar7 -c -o - | 
sed -n -e '/emailnotify/,/}/p' | 
sed -n -e '/SMTPServer/,/passwd/p' | # Alles im Bereich SMTPServer bis passwd  ausschneiden
sed 's/;$//' | # Die Semikolons am Ende entfernen
sed 's/^ \{1,\}//' | # Die Leerzeichen am Beginn entfernen
s/ = /=/g' # Die Leerzeichen zw. den = entfernen
Ergibt:
Code:
SMTPServer=""
accountname=""
passwd=""
Wenn man das ganz in eine Datei Umleitet, kann man diese Sourcen und die Umgebungsvariablen sind gesetzt:
Code:
allcfgconv | ... | sed 's/ = /=/g' > /tmp/x
. /tmp/x

Das ganze geht auch mit eval in einer Schleife statt mit einer Datei.
 
Ich dachte eher, dass man alles abschneidet bis auf den Wert. Mit "./tmp/x" und mit der Schleife habe ich große Bedenken, dass Variablen nur innerhalb dieses Untershells bzw. innerhalb der Schleife gelten. Den Fall hatte ich schon mal mit meinem Downloader. Mag sein, dass es aber geht. Ich werde es mal testen.

MfG
 
"./tmp/x" ist ja auch falsch. "._/tmp/x", also mit Leerzeichen. Da das Script in der gleichen Shell läuft, bleiben die Werte erhalten.

Nutzt Du eine Schleife mit eval, darf's natürlich nicht "while read x" sein. Da wird eine neue Shell aufgemacht (ist allerdings auch Shellabhängig, z.B. mit der ksh unter Solaris ist's keine neue Shell)

Einen Wert rausschneiden geht z.B. so (eine Ausführliche der 1000 Lösungen):
Code:
allcfgconv -C ar7 -c -o - | 
sed -n -e '/emailnotify/,/}/p' | # Abschnitt herausscheiden
grep 'SMTPServer' | # Zeile herausscheiden
cut -d'=' -f2 | # Rechts vom = herausscheiden
sed 's/;$//' # Semikolon am Ende wegschneiden

Gruß
Markus
 
Leute, laßt das mal nicht den Alexander sehen :)

Wenn man schon sed verwendet, dann gleich richtig:
Code:
TEXT=$(allcfgconv -C ar7 -c -o - | 
sed -n -e '/emailnotify/,/}/p')  # Abschnitt herausscheiden
# Einzelnen Wert (SMTPServer):
echo "$TEXT" |
sed -r -n -e 's/[ \t]+SMTPServer = (.*);/\1/gp'
# Zuweisungen (potentiell gefährlich, wenn man nicht ganz sicher ist, was für Werte möglich sind)
eval $(echo "$TEXT" |
sed -r -n -e 's/[ \t]+([a-zA-Z0-9_]+) = (.*);/\1=\2/gp' )
echo $SMTPServer
Vermutlich gibt es sogar eine Möglichkeit, das Ganze mit einem einzigen Aufruf von sed zu machen.
 
Hallo.

Ich habe das Script in Post 11 in rc.custom hinterlegt, abespeichert und die Box neu gestartet. Eine eMail wurde allerdings nicht versendet.

Daraufhin habe ich den mailer Befehl gecheckt. Der funktioniert, wenn ich ihn über SSH ausführe.
Dann habe ich die rm Zeile mal rausgenommen, um zu sehen, ob die Datei überhaupt geschrieben wird. Leider scheint dies nicht der Fall zu sein.

Ich habe mir überlegt, dass ich die uptime gar nicht brauche -vielleicht hängt die Box auch gerade an der Stelle- und habe das Skript dahingehend abgeändert. Wer es braucht:

Code:
# Create executable online status event handler
cat > /var/tmp/onlinechanged << 'EOF'
#!/bin/sh
if [ "$1" = "online" ] ; then
  mailer \
    -s "New IP: $(/usr/bin/get_ip)" \
    -f "[email protected]" \
    -t "[email protected]" \
    -m "smtp.mydomain.org" \
    -a "username" \
    -w "password" 
fi
EOF
chmod +x /var/tmp/onlinechanged


Gruß
molfi
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.