it-swarm.com.de

Serverskript, das bei jeder Änderung der globalen IP-Adresse eine E-Mail sendet

Ich richte einen Webserver ein, der keine statische globale IP hat. Es wird bei meinen Eltern sein und ich werde nicht in der Lage sein, SSH einzuspielen, wenn sich die globale IP ändert. Die globale IP-Adresse ändert sich bei jedem Neustart des Routers, etwa einmal im Monat.

Ich benötige ein Skript, das mir jedes Mal eine E-Mail sendet, wenn sich die globale IP ändert. So kann ich den DNS aktualisieren, damit meine Website wieder funktioniert.

Ich weiß nichts über Skripte in Ubuntu, aber ich kenne die Grundlagen in Java und PHP.

Computer: Ubuntu 13.10 Server, iMac G4 Globe.

6
Alvar

Haben Sie überlegt, ein dynamisches DNS-Aktualisierungsskript/-tool zu verwenden?

z.B. ddclient verfügbar als Debian/Ubuntu-Paket.

Es kann Ihre DNS-Zone aktualisieren ODER Ihren dynamischen DNS-Eintrag aktualisieren (damit Sie sich einloggen können) und ein benutzerdefiniertes Skript ausführen, um Ihnen eine E-Mail zu senden.

7
AnFi

Basierend auf dem Code von diese Antwort habe ich ein paar weitere Optionen zum Debuggen geändert und hinzugefügt.

Ich musste den E-Mail-Server einrichten und crontab -e verwenden, um meine aktuelle IP-Adresse per E-Mail zu erhalten. Sie müssen auch die Skriptdatei ausführbar machen und sicherstellen, dass Ihr Benutzer über Lese- und Schreibberechtigungen für den Ordner verfügt, in dem Sie die Skripte abgelegt haben.

#!/bin/bash
NOWIPADDR="/home/scripts/nowipaddr"
GETIPADDR="Dig +short myip.opendns.com @resolver1.opendns.com"
LOG="/home/scripts/ip.log"
timestamp=$( date +%T )
curDate=$( date +"%m-%d-%y" )

if [ -f $NOWIPADDR ]; then
  if [[ `$GETIPADDR` = $(< $NOWIPADDR) ]]; then
    echo $curDate $timestamp " IP address check: " $(< $NOWIPADDR) >> $LOG
  else
    $GETIPADDR > $NOWIPADDR
    mail -s "Server IP" [email protected] < $NOWIPADDR
  fi
else
  $GETIPADDR > $NOWIPADDR
  mail -s "Server IP" [email protected] < $NOWIPADDR
fi
4
Jeffrey Stines

Sie können ein einfaches Skript schreiben, das vom Cron aus und täglich zu einer bestimmten Zeit ausgeführt wird.

Nehmen Sie die vorhandene IP-Adresse in eine Datei und führen Sie dann Ihre if-Schleife aus, um die neue IP-Adresse mit der vorhandenen IP-Adresse zu überprüfen. Wenn beide IP-Adressen identisch bleiben, kann das Senden von E-Mails übersprungen werden. Andernfalls sollte bei einer Änderung der IP-Adresse eine E-Mail mit der neuen IP-Adresse gesendet werden.

sie können das Skript stündlich, täglich und wöchentlich ausführen.

NOWIPADDR="nowipaddr"
GETIPADDR="ifconfig.me"


    if [ -f $NOWIPADDR ]
    then
       if [ `cat $NOWIPADDR` = `curl $GETIPADDR` ]
       then
           echo "no change in IP."
       else
           curl $GETIPADDR > $NOWIPADDR
           mail -s "IP is $GETIPADDR" [email protected]
        fi
    else
        curl $GETIPADDR >> $NOWIPADDR
    fi
3
OmPS

Ich benutze dies, um meine IP-Adresse einmal am Tag zu überprüfen.

wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//' > ~/myip

Wenn Sie irgendwo einen Linux-Computer mit statischer IP-Adresse haben, würde ich sagen, rcp die Datei ~/myip dort drüben.

Ist dies nicht der Fall, können Sie immer ein praktisches Befehlszeilentool namens sendEmail verwenden (nicht zu verwechseln mit sendmail). Mit diesem Tool ist es sehr einfach, eine E-Mail mit einem einzeiligen Befehl zu senden. http://caspian.dotconf.net/menu/Software/SendEmail/

Sie könnten etwas in diese Richtung schreiben:

myip=`wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'`<br>
sendEmail -f [email protected] -m $myip 
2

Ein bisschen wie ein alter Thread, aber er steht ganz oben auf der Liste, wenn Sie bei Google nach Möglichkeiten suchen, wie Sie externe IP-Änderungen überwachen können.

Als alternative Option, die Ihnen vielleicht helfen könnte, habe ich ein python -Skript geschrieben, das darauf ausgelegt ist, Änderungen der externen IP-Adresse zu überwachen. Derzeit wird die "aktuelle" externe IP-Adresse in einer Datei gespeichert und beim Ausführen eine neue IP-Adresse abgerufen und dann mit der alten verglichen. Es ist so konzipiert, dass Sie per E-Mail benachrichtigt werden, wenn eine Änderung festgestellt wird.

Es ist so konzipiert, dass es als Cronjob ausgeführt wird und nicht als eigenständiger Hintergrund-Daemon.

Hier ist der Link zum Github-Repository: https://github.com/begleysm/ipwatch

Hoffentlich hilft es!

0
begleysm