Zugewiesene IP Adresse versenden

Post Reply
Message
Author
rhodan

Zugewiesene IP Adresse versenden

#1 Post by rhodan »

Hallo

Ich betreibe zu Hause einen Linux-Rechner als Proxy/Router.
Dieser Rechner ist fast immer mit dem Internet verbunden. Allerding kappt mein Provider (Flatrate) nach 12 Stunden die Verbindung und ich bekomme eine neue IP-Adresse zugewiesen. Ich suche nun nach einer Möglichkeit diese per eMail zu versenden oder am besten irgendwo per FTP hochzuladen, damit ich von aussen auf ihn zugreifen kann.
FTP wäre auf jeden Fall besser, da es dann sogar möglich wäre einen Webserver zu betreiben.

Ich hoffe jemand kennt eine Möglichkeit!

Descartes

Re: Zugewiesene IP Adresse versenden

#2 Post by Descartes »

Geh mal in das "Programmieren - Allgemein" Forum und schau dir den Thread "Net::FTP" an. Dort wird dein Problem bereits diskutiert. Ein Perl-Script gibt's dort auch.

Rossi

Re: Zugewiesene IP Adresse versenden

#3 Post by Rossi »

Moin,

ich hab hier ein kleines Skript, das die IP per Mail zuschickt. Nicht sonderlich elegant, aber ich hab auch wenig Ahnung von Shell skripting. Es überprüft noch, ob Du online bist, bzw. macht bei Bedarfswahl die Verbindung wieder auf.
Der Haken ist natürlich, wenn die Gegenstelle unten ist, dann klappt das nicht. Aus dem Grunde empfehle ich Deine direkte Gegenstelle (also die andere Peer IP). Die dürfte immer gleich sein (wahrscheinlich x.x.x.1).
Der letzte "if" Block ist wahrscheinlich bei Dir überflüssig, aber ich bekomme häufiger mal nach einer kurzen Trennung die gleiche IP, deshalb hab ich ihn eingeführt.
Mußt evtl. noch Pfade anpassen (logo).

#!/bin/bash

/bin/sleep 4 # Warten, bis die Verbindung steht.
NET=ppp0
IP_ORIG=`ifconfig $NET | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
IP_NEU=$IP_ORIG
TEST_IP="1.2.3.4" # Die IP, die Du anpingen willst, um festzustellen, ob Du noch online bist.
NETZ_STATUS=0
echo "Initial Connect. IP: $IP_ORIG" | /bin/mail -s "Neue IP Adresse" Deine@Mail.com

while [ "1" = "1" ]; do # Soll immer laufen. Nicht elegant, aber funzt.
while [ "$IP_NEU" = "$IP_ORIG" ]; do
/bin/sleep 36
/bin/ping -c1 $TEST_IP &> /dev/null
if [ "$?" != "0" ]; then
NETZ_STATUS=1
while [ "$NETZ_STATUS" = "1" ]; do
/bin/sleep 4
/bin/ping -c1 $TEST_IP &> /dev/null
if [ "$?" = "0" ]; then
NETZ_STATUS=0
fi
done
/bin/sleep 4
IP_NEU=`ifconfig $NET | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
fi
done
if [ "$IP_NEU" != "$IP_ORIG" ]; then
ZEIT=`/usr/bin/date +%T`
TXT="Du bist um $ZEIT mal wieder getrennt worden. Aktuell: $IP_NEU"
echo $TXT | /bin/mail -s "Neue IP Adresse" Deine@Mail.com
IP_ORIG=$IP_NEU
fi
done


Starten tue ich das mit "nohup dateiname &". In diesem Sinne noch mal danke an alle, die mir bei meinen Skriptfragen geholfen haben.

Rossi

Re: Zugewiesene IP Adresse versenden

#4 Post by Rossi »

Hups. Der hat meine Leerzeichen gefressen.Sorry

User avatar
heinrich
Posts: 219
Joined: 22. Sep 1999 11:22
Location: N49.137 E8.544

Re: Zugewiesene IP Adresse versenden

#5 Post by heinrich »

Für Quellcode-Postings solltest du die in HILFE definierten TAGS verwenden;
Ein TABULATOR wird dabei in ein ganz normales Leerzeichen umgewandelt, weswegen Quellcode-Postings mitunter eigenwillig aussehen. (Nicht vergessen, eckige Klammern mit \<!--no-->[ zu quoten -- sonst werden die evt. als Board-Befehl verstanden.)

<pre>
#!/bin/bash
/bin/sleep 4 # Warten, bis die Verbindung steht.
NET=ppp0
IP_ORIG=`ifconfig $NET | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
IP_NEU=$IP_ORIG
TEST_IP="1.2.3.4" # Die IP, die Du anpingen willst, um festzustellen, ob Du noch online bist.
NETZ_STATUS=0
echo "Initial Connect. IP: $IP_ORIG" | /bin/mail -s "Neue IP Adresse" Deine@Mail.com

while [<!--no--> "1" = "1" <!--no-->]; do # Soll immer laufen. Nicht elegant, aber funzt.
while [<!--no--> "$IP_NEU" = "$IP_ORIG" <!--no-->]; do
/bin/sleep 36
/bin/ping -c1 $TEST_IP &> /dev/null
if [<!--no--> "$?" != "0" <!--no-->]; then
NETZ_STATUS=1
while [<!--no--> "$NETZ_STATUS" = "1" <!--no-->]; do
/bin/sleep 4
/bin/ping -c1 $TEST_IP &> /dev/null
if [<!--no--> "$?" = "0" <!--no-->]; then
NETZ_STATUS=0
fi
done
/bin/sleep 4
IP_NEU=`ifconfig $NET | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
fi
done
if [<!--no--> "$IP_NEU" != "$IP_ORIG" <!--no-->]; then
ZEIT=`/usr/bin/date +%T`
TXT="Du bist um $ZEIT mal wieder getrennt worden. Aktuell: $IP_NEU"
echo $TXT | /bin/mail -s "Neue IP Adresse" Deine@Mail.com
IP_ORIG=$IP_NEU
fi
done
</pre>
Last edited by heinrich on 14. Jun 2001 15:11, edited 1 time in total.

greg

Re: Zugewiesene IP Adresse versenden

#6 Post by greg »

eine viel bessere lösung für solche dinge sind nach meiner meinung solche dynDNS-services. da hast du eine kleines programm, das packst du in deine ip-up, und bei jeder einwahl wird die deine IP aktualisiert, die bekommst dort nämlich einen festen hostnamen(foo.dynodns.net bspw.)

es gibt sehr viele solche services, ich benutzt www.dynodns.net, bekannt ist auch noch www.dyndns.org

Descartes

Re: Zugewiesene IP Adresse versenden

#7 Post by Descartes »

Weiss ich, aber wie siehts mit folgenden Fragen aus ?

Die Tools
1.) funkionieren nur mit Windows
2.) gibt's auch für Linux; sind aber closed-source

Lino

Re: Zugewiesene IP Adresse versenden

#8 Post by Lino »

was soll sich an den dyndns tools den noch groß ändern?

by Lino

Post Reply