Aktuelle IP per Mail bei IP-Wechsel

Es gäbe das "onlinechanged-cgi" (oder so ähnlich), was immer aufgerufen wird, wenn die IP sich ändert. Wenn irgendetwas allerdings nicht klappt, benutz bitte ein unmodifiziertes Verzeichnis (ob trunk oder branch ist dabei egal). Denn erst dann ist abzusehen, was da passiert, bzw. dies auch korrekt zu überprüfen.
 
Danke für den Tipp mit dem onlinechanged,
damit hab ich es hinbekommen.
 
eMail wenn DynDNS Domain nicht erreichbar

Hallo,

Wäre es möglich über ein Script und Crontab eine eMail zu versenden
wenn die DynDNS Domain nicht erreichbar ist.

Als Grundlage könnte man ja vielleicht das Onlinechanged von kriegaex nehmen.

# Create online status event handler
cat > /var/tmp/onlinechanged << EOF
#!/bin/sh
if [ "\$1" = "online" ] ; then
mailer \\
-s "New IP: \`wget -q -O - http://www.sipsurf.de/tools/ip.php\`" \\
-f "[email protected]" \\
-t "[email protected]" \\
-m "smtp.somedomain.de" \\
-a "smtp-username" \\
-w "smtp-password"
fi
EOF

# Make event handler script executable
chmod +x /var/tmp/onlinechanged

# Restart multid with event handler script
multid -s
multid
 
Und wieso machst du das snicht entsprechend? Machbar sollte es sein, und "onlinechanged" ist inzwischen ein Feature im trunk ;)
Und wenn du damit durch bist, so freut sich das Wiki sicherlich noch über eine Ergänzung damit.
 
Bin absoluter Neuling auf dem Gebiet,
bin schon froh das Ich Freetz auf die FB bekommen habe Dank euren Beiträgen.


Mein Ansatz wäre so:

If ping "Domainname" nicht erreichbar ; then
mailer \\
-s "Domainname nicht erreichbar" \\
-f "[email protected]" \\
-t "[email protected]" \\
-m "smtp.somedomain.de" \\
-a "smtp-username" \\
-w "smtp-password"

Für ein bißchen Hilfe wäre ich sehr dankbar
 
@Snakeraider11: Einige Anmerkungen meinerseits.
1. Wenn du AVM-Mailbenachrichtigung bereits benutzt, brauchst du diese ganzen benutzer/passwd/smtpserver-Daten nicht. Du musst nur den anderen mailer (wrapper) von AVM nutzen. Such bitte hier danach, wirst du bestimmt fündig. Sonst schaue ich bei meinen eigene Skripten und poste vielleicht was darüber.
2. ping auf dyndns reicht dabei nicht aus. Bei den letzten gravierenden Problemen bei dyndns (etwa vor 2-3 Jahren), die damals kriegaex dazu veranlasst hatten diese Alternativmethode zu nehmen, konnte man dyndns ganz gut pingen. Man konnte sich aber nicht anmelden. Deswegen muss man normalerweise checken, ob die Anmeldung erfolgreich war oder nicht. Fölglich gehört diese Geschichte hier eigentlich zum dyndns-Client, der dann bei einer erfolglosen Anmeldung bei dyndns eine E-Mail schicken soll.
3. Und jetzt kommt die Frage, wo du diese passende Stelle im Client findest. Ich weiß nicht, ob es überhaupt mit dem AVM-Client möglich ist. Sonst musst du wahrscheinlich auf unser inadyn (oder was wir da im Angebot haben) ausweichen. Wir würden dich gerne bei deinen Versuchen unterstützen, aber programmieren musst du schon selbst. Das können wir dir nicht abnehmen.

MfG
 
Mit ftp oder scp (ohne PW) und onlinechanged, kannst Du die neue IP-Adresse auch weiterleiten:
case "$1" in
start)
# Kommandos beim Start des Routers
/sbin/showdsldstat | sed -e "/0: ip /!d" | sed -e "s/.*0: ip \([0-9.]*\).*/\1/" | sed -e "\$!d" > /var/tmp/myip;
sleep 3;
ncftpput -a -u <user> -p <*****> -P <port> <host> /Pfad/zum/Ordner/ /var/tmp/myip;
#scp /var/tmp/myip -P <port> <user>@<host>:/Pfad/zum/Ordner/;
;;
online)
# Kommandos wenn der Router online geht (zB Zwangstrennung)
/sbin/showdsldstat | sed -e "/0: ip /!d" | sed -e "s/.*0: ip \([0-9.]*\).*/\1/" | sed -e "\$!d" > /var/tmp/myip;
sleep 3;
ncftpput -a -u <user> -p <*****> -P <port> <host> /Pfad/zum/Ordner/ /var/tmp/myip;
#scp /var/tmp/myip -P <port> <user>@<host>:/Pfad/zum/Ordner/;
;;
offline)
# Kommandos wenn der Router offline geht (zB Zwangstrennung)
;;
esac
 
@Snakeraider11: Du weißt aber, dass Doppelpostings hier nicht besonders beliebt sind? Ich hatte mir schon gedacht: Irgendwie kennst du den Snakerraider schon und die Thematik ist ja bekannt und sogar gepostet hattest du auch da in dem Thread, aber wer zum Geier hat dein Posting gelöscht? Ich dachte echt, habe ich déjà-vu, oder gestern zu viel getrunken, oder was denn...

Aber weder noch .... s. hier

Was hat dich bitte schön aufgehalten die beiden Fragen in einem Thread zu vereinen?

MfG
 
Hallo,

dann fassen wir die beiden Threads doch einfach mal zusammen.
 
Im ersten Post gehts um den Versand einer eMail wenn die IP wechselt.
Dies habe ich ja auch hinbekommen, kann man also als gelöst betrachten.

Im zweiten Post gehts um den Versand einer eMail wenn DynDNS nicht erreichbar ist,
z.B. wegen Fehler bei der Anmeldung oder der DNS Auflösung.

Ist also doch kein Doppelpost oder?

Hintergrund des ganzen ist das hinter der Fritz ein Server hängt der immer
erreichbar sein sollte. (Nicht nur für mich)

Wenn jetzt z.B nach der Zwangstrennung einer Fehler bei der DNS Anmeldung
auftrifft, würde ich halt gerne eine eMail erhalten die ich an mein Handy weiterleite.
So weiß ich morgens vor der Arbeit halt immer bescheid ob alles I.O ist.

Bisher starte ich halt morgens immer meinen Rechner und schaue nach.
 
@Snakeraider11: Trotzdem hängen die beiden Thematiken sehr miteinander zusammen. Versuch doch bitte meinen Vorschlägen nachzugehen. Es sieht für mich danach aus, als hätte man daraus wenigstens eine kleine CGI-Erweiterung für AVM-eigene dyndns-Funktion machen können. Frage ist nur, ob mit AVM-binaries/Skripten oder mit FREETZ-eigenen (z.B. inadyn). Mich persönlich würde die Thematik auch interessieren. Deswegen lass uns mal schauen, vielleicht entsteht aus der bekannten Sammlung der unterschiedlichen Infos und Tricks etwas.

MfG
 
Es gab schon mal zumindest ein Thema, welches sich mit dem AVM-Eigenen Dingen und der Überprüfung dessen, was er so macht, beschäftigt haben. Es gibt ein File, welches den Status des Accounts speichert. Dies wäre dann die "/var/tmp/ddnsstat.txt".
Diese enthält, neben dem Accountnamen selber, 2 andere Werte:
Code:
cat ddnsstat.txt
5 357285 dyn.dns
Das erste ist der Status. Die 5 ist "synced" (Eine 2 ist glaub ich falsche user/password-Sachen). Das 2. wird ein Zeitstempel sein, gehe ich von aus, und das dritte der Host. Vielleicht hilft dir das weiter, ohne, dass du dyndns abfragen musst. Alternativ kannst du natürlich auch ein Shellscript suchen, welches deinen dyndns-Account abfragt und mit deiner aktuellen IP vergleicht. Wenn diese nicht übereinstimmt, dann mail., ansonsten nicht.

Und eben dieses Shellscripten bei IP-Wechsel oder so etwas hängt dermassen nah aneinander, dass es ein Thread wurde, denn beide Scripte müssen nur ausgeführt werden, wenn deine IP wechselt, ansonsten ist es ja irrelevant.
 
An sowas, wie diese Datei hatte ich auch gedacht, ich wüsste aber nicht, dass sie existiert. Wiederum was gelernt. Dann würde ich vorschlagen, dass man "onlinechanged"-Skript dafür zu Grunde legt, dann eben eine Schleife aus z.B. 3-5 Widerholungen einbaut (kann man parametrierbar machen). In dieser Schleife einen sleep von etwa 1 Minute einbaut mit dem darauf folgenden check eben entweder dieser Datei, oder einem richtigen ping zur Adresse mit dem IP-Abgleich. Die Datei-Methode gefällt mir besser. Danach springt man aus der Schleife entweder mit Erfolg raus oder am Ende der Widerholungen. War kein Erfolg zu verzeichnen, so kann eine Aktion ausgeführt werden. Z.B. e-mail senden mit der dazugehörigen Fehlermeldung, IP und so weiter. Oder eben z.B. eine Datei per ftp/scp hochladen.
Das könnte man alles als Web-GUI realisieren. Wenn ich mal Zeit habe....

MfG
 
Hab folgendes mal ins Rudi Shell eingegeben und getestet.

cat /var/tmp/ddnsstat.txt
5 357285 Domainname

Bei erfolgreicher DNS Auflösung bekomme ich als Antwort:
5 48 Domainname

nach einem Reboot und bei Fehler der DNS Auflösung des Domainnamens bekomme ich als Antwort:
0 0 Domainname

nach einem erneuten Reboot und bei erfolgreicher DNS Auflösung
bekam ich als Antwort:
3 55 Domainname

Wenn die DNS Auflösung geklappt hat kommen also anscheinend immer andere
Antworten zurück was auch immer sie bedeuten.

Bei nicht erfolgreicher DNS Auflösung kommt immer 0 0 Domainname
Könnte man dies nicht als Einstieg nehmen?
 
Zuletzt bearbeitet:
Versuchs? Ich mein, wieso fragst du hier nach einer Genehmigung? Ich aber hatte schon "2" als Wert, nachdem nicht augelöst wurde mit falschem Passwort. Scheint also eher, dass "!=5" sinnvoller wäre.
 
Eine Genehmigung wollte ich auch nicht haben,
nur da ich mich mit der Materie nicht so gut auskenne wie Ihr
weiß ich nicht so genau wie ich das umsetzen kann.

Hab mal ein bißchen gegoogelt und hab dabei dieses gefunden

var1="0 0 Domainname"
var2="?"
if [ "$var1" = "$var2" ]; then

Nur wie bekomme ich jetzt die Ausgabe der ddnsstat.txt
in die Variable2
 
cat und sed sind deine Kommandozeilenfreunde. Schau dir mal an, was sf3978 weiter oben angestellt hat, der nimmt auch irgendwelche ausgaben auseinander.
Ungetestet, aber irgendwie in der Richtung:
Code:
#!/bin/sh
VAR1="$(cat /tmp/ddnsstat.txt|sed "s/\ .*//")"
if [ "$VAR1" == 5 ]; then
  echo "5, also gesynct"
else
  echo "noe, was anderes. son mist aber auch"
fi
 
Mit deinem Vorschlag habe ich es nicht hinbekommen,
hab aber mal ein bißchen rumprobiert und hab's glaube ich hiermit geschafft.

Bei Fehler der DNS Auflösung kann ich erst später testen da ich im Moment erreichbar sein muß.

Habe daher die aktuellen Werte der ddnsstat.txt in VAR2 genommen.
#!/bin/sh
VAR1="$(cat /tmp/ddnsstat.txt)"
VAR2="3 54 Domainname"
if [ "$VAR1" == "$VAR2" ]; then
echo "5, also gesynct"
else
echo "noe, was anderes. son mist aber auch"
fi

hiermit bekomme ich dann als echo
ändere ich den Wert in VAR2 in z.B.: "3 55 Domainname"

bekomme ich als echo
noe, was anderes. son mist aber auch
Kann man das so verwenden?
 
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.