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!
Zugewiesene IP Adresse versenden
Re: Zugewiesene IP Adresse versenden
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.
Re: Zugewiesene IP Adresse versenden
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.
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.
Re: Zugewiesene IP Adresse versenden
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>
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.
Re: Zugewiesene IP Adresse versenden
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
es gibt sehr viele solche services, ich benutzt www.dynodns.net, bekannt ist auch noch www.dyndns.org
Re: Zugewiesene IP Adresse versenden
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
Die Tools
1.) funkionieren nur mit Windows
2.) gibt's auch für Linux; sind aber closed-source
Re: Zugewiesene IP Adresse versenden
was soll sich an den dyndns tools den noch groß ändern?
by Lino
by Lino