Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Monatliche DynDNS-Anmeldung per Script

    Nobody is reading this thread right now.
AW: Monatliche DynDNS-Anmeldung per Script

Was soll denn das Script machen?
 
AW: Monatliche DynDNS-Anmeldung per Script

erstell dir dafür doch bitte einen eigenen thread in dem du dein genaues anliegen erleuterst, anstatt im nächst besten thread zu posten der irgend was mit scripts zu tun hat aber nichts mit dem was du eigentlich möchtest..
danke
 
AW: Monatliche DynDNS-Anmeldung per Script

Hi,

was soll das denn ??

Sorry aber ich habe Null Plan von Skripts.... Kann mir jemand erklären wie ich so eins erstelle und was ich dann damit machen muss?

Sorry, aber was hast du eigentlich am laufen? Hast du es selber eingerichtet? oder wer?

Aus deinem Post ist weder zu erahnen was du vor hast noch hast du irgendwelche Daten zu deiner Konfiguration preisgegeben.

Eine Glaskugel haben wir hier nicht. Bitte poste doch mal was für Equipment du hast, und was du damit anstellen möchtest!!!

Gruß Rooki
 
AW: Monatliche DynDNS-Anmeldung per Script

Ganz einfach: wenn er Fragen zu dem Script hier hat, kann er die ja stellen.
Will er Grundsatzfragen zum Scripting stellen, lagern wir ihn um :good:
 
AW: Monatliche DynDNS-Anmeldung per Script

Wie hier beschrieben.... monatliche Anmeldung bei DynDNS. Ich weiß nur Grunsätzliches nicht. Mit welchem Programm erstelle ich das Skript?
Also ich kopiere das Skript für die Dreambox... aber wo füge ich es ein?
 
AW: Monatliche DynDNS-Anmeldung per Script

Ist im Post#1 weiter unten auch für Dreams verlinkt.
Wohin Du es legst, ist egal. Ich lege sowas gerne nach /usr/script.
Aufgerufen wird es über den Cronjob.

Bearbeiten immer mit einem konformen Editor: Notepad++ z.B.
Oder über den DCC, dort in FTP aufmachen und es wird konform bearbeitet.
 
AW: Monatliche DynDNS-Anmeldung per Script

Wie hier beschrieben.... monatliche Anmeldung bei DynDNS. Ich weiß nur Grunsätzliches nicht. Mit welchem Programm erstelle ich das Skript?
Also ich kopiere das Skript für die Dreambox... aber wo füge ich es ein?

zunächst brauchst du einen Linux kompatiblen Editor für dein Windows wie zum beispiel notepad++:

das script im code block aus post#10 (diesem) oder aus post#38 (diesem) oder einen der anderen beispiele zum DynDNS-Anmelden, markierst du dann vollständig mit der maus, kopierst es (rechte maustaste -> kopieren .. oder tastenkombination strg+c) und fügst es in notepad++ ein.
anschliesend speicherst du das file als zum beispiel " dyndnslogin.sh "

das file kopierst du dann auf deinen receiver in irgend ein verzeichniss wie zum beispiel /etc/init.d/

dann verbindest du dich am besten über putty auf deinen receiver und führst den befehl aus: chmod 755 /etc/init.d/dyndnslogin.sh

und führst es anschliesend aus: /etc/init.d/dyndnslogin.sh

wenn das funktioniert hat muss es noch in die crontab eingetragen werden..
 
AW: Monatliche DynDNS-Anmeldung per Script

So weit so gut... bis hin zum auf die den Receiver kopieren auch alles für mich verständlich.
Aber was ist putty und crontab?
Sorry für meine Unwissenheit!!!
 
AW: Monatliche DynDNS-Anmeldung per Script

Putty ist eine freeware Client software mit der du sowohl SSH als auch Telnet nutzen kannst, um dich auf die Konsole deines Receiver zu verbinden.
(oder auf Linux Server usw)

Putty laden ( ), installieren, starten und dann bei "Host Name (or IP Adress)" trägst du die IP deines Receivers ein, wählst bei " Connection type ": Telnet
und klickst anschliesend auf " Open "

Dann gibst du als Username " root " ein und ggf. das dazugehöre password sofern du eins gesetzt hast..


crontab dient der zeitbasierten Ausführung von Prozessen in Unix und unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, um wiederkehrende Aufgaben – sogenannte Cronjobs – zu automatisieren.

die crontab vom root benutzer bearbeitest du über den konsolen befehl crontab -e
Beim Aufruf von crontab -e wird der Editor Vi aufgerufen. Dieser Editor verfügt über einen Befehls- oder Kommandomodus und einen Einfügemodus.

Im Befehlsmodus geben Sie Befehle ein, z.B. speichere die Datei. Tastatureingaben in diesem Modus erscheinen nicht als Text auf dem Bildschirm, sondern werden als Befehl interpretiert.

In den Einfügemodus gelangen Sie, indem Sie einen entsprechenden Befehl eingeben. In den meisten Fällen ist das i (insert) oder die Einfügen-Taste. In diesem Modus werden die Zeichen, die Sie eingeben, sofort in den Text eingefügt. In den Befehlsmodus gelangen Sie danach mit der ESC-Taste.

Hier finden Sie einige häufig vorkommende Befehle
[TABLE="class: tablecolumns-2 tablerows-10"]
[TR]
[TH]Befehl[/TH]
[TH]Beschreibung[/TH]
[/TR]
[TR="class: row1"]
[TD="class: first-cell"]dd[/TD]
[TD]Aktuelle Zeile löschen[/TD]
[/TR]
[TR="class: row0"]
[TD="class: first-cell"]u[/TD]
[TD]Letzte Veränderung rückgängig machen[/TD]
[/TR]
[TR="class: row1"]
[TD="class: first-cell"]x[/TD]
[TD]Zeichen unter dem Cursor löschen[/TD]
[/TR]
[TR="class: row0"]
[TD="class: first-cell"]J[/TD]
[TD]Zeilen zusammenfassen[/TD]
[/TR]
[TR="class: row1"]
[TD="class: first-cell"]o[/TD]
[TD]Neue Zeile unter der aktuellen einfügen[/TD]
[/TR]
[TR="class: row0"]
[TD="class: first-cell"]P[/TD]
[TD]Daten aus dem Speicher-Puffer an der Cursor-Position einfügen[/TD]
[/TR]
[TR="class: row1"]
[TD="class: first-cell"]:q[/TD]
[TD]Editor verlassen[/TD]
[/TR]
[TR="class: row0"]
[TD="class: first-cell"]:q![/TD]
[TD]Editor verlassen ohne den Text zu speichern[/TD]
[/TR]
[TR="class: row1"]
[TD="class: first-cell"]:wq[/TD]
[TD]Text abspeichern und Editor verlassen[/TD]
[/TR]
[TR="class: row0"]
[TD="class: first-cell"]i[/TD]
[TD]In den Eingabemodus springen, Texteingabe ab der Cursorposition[/TD]
[/TR]
[/TABLE]
in die crontab musst du dann eine Zeile wie sie im post#1 nach dem Hinweis von vdrschlucke beschrieben steht, passend für den pfad deines scripts, einfügen und speichern..
 
AW: Monatliche DynDNS-Anmeldung per Script

Hier nochmal das ganze als Phyton Script...ist das einzigste was auf meinem pogo rennt, bei allen anderen kam immer Login failed egal ob mit "Welcome" oder Hi <username>
[HIDE]
#!/usr/bin/python


import urllib
import urllib2
import cookielib
import getopt
import sys


def getRandHTMLResponse(response):
target = "<form id=\'login"
targetresponse = "<div id=\'loginbox\'"


response = response[response.find(targetresponse):len(response)]
return response[response.find(target)+len(target):response.find(target)+len(target):response.find(target)+len(target)+4]


def getHiddenRandHTMLResponse(response):
target = "<input type=\'hidden\' name=\'multiform\' value=\'"
targetresponse = "<div id=\'loginbox\'"
parsedres = response[response.find(targetresponse):len(response)]
return parsedres[parsedres.find(target)+len(target):parsedres.find(target)+len(target)+34]


def checkLogin(response):
target = "<title>My Dyn Account</title>"
if response.find(target) == -1:
return False
return True


def usage():
print "usage: ./dyndnsAutoLogin [options]"
print ""
print "options:"
print "-h, --help show this help message and exit"
print "-u, --username set your DynDns login_username"
print "-p, --password set your DynDns login_password"
print ""
print "example:"
print "./dyndnsAutoLogin -u username -p password"


class HTMLSession:
cj = None
opener = None
txHeaders = None

def __init__(self, txHeaders):
#The CookieJar will hold any cookies necessary throughout the login process.
self.cj = cookielib.MozillaCookieJar()
self.txHeaders = txHeaders
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
urllib2.install_opener(self.opener)


def setHeaders(self, txheaders):
self.txHeaders = txHeaders


def getHeaders(self):
return self.txHeaders


def openURI(self, uri, txdata):
try:
req = urllib2.Request(uri, txdata, self.txHeaders)
# create a request object


handle = urllib2.urlopen(req)
# and open it to return a handle on the url


except IOError as e:
print 'we failed to open "%s".' % uri


if hasattr(e, 'code'):
print 'We failed with error code - %s.' % e.code
elif hasattr(e, 'reason'):
print "The error object has the following 'reason' attribute :"
print e.reason
print "This usually means the server doesn't exist,'"
print "is down, or we don't have an internet connection."
return None
else:
return handle.read()


def main(argv):
username = "USER"
password = "PASS"
hiddenval = ""
theurl = "https://account.dyn.com/entrance/"
thelogouturl = "https://account.dyn.com/entrance/?__logout=1"
txdata = None
txheaders = {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
# fake a user agent, some websites (like google) don't like automated exploration


try:
opts, args = getopt.getopt(argv, "hu:p:", ["help", "username=","password="])
except getopt.GetoptError:
usage()
exit(2)
for opt, arg in opts:
if opt in ("-h", "--help"):
usage()
exit(2)
elif opt in ("-u", "--username"):
username = arg
elif opt in ("-p", "--password"):
password = arg


myhtmlsession = HTMLSession(txheaders)
response = myhtmlsession.openURI(theurl, None)


if response == None:
sys.exit(0)


hiddenval = getHiddenRandHTMLResponse(response)
txdata = urllib.urlencode({'username':username, 'password':password, 'multiform':hiddenval, 'submit': "Log in"})


response = myhtmlsession.openURI(theurl, txdata)
if response == None:
sys.exit(0)

#we should sleep here for about 10 seconds.
if checkLogin(response):
print 'We have succesfully logged into DynDNS.'
else:
print 'Login failed'


response = myhtmlsession.openURI(thelogouturl, None)
if response == None:
sys.exit(0)


if __name__ == "__main__":
main(sys.argv[1:])
[/HIDE]
 
AW: Monatliche DynDNS-Anmeldung per Script

funktioniert leider nicht:
Code:
/usr/bin/python dyndnslogin.py --help
  File "dyndnslogin.py", line 10
    target = "<form id=\'login"
         ^
IndentationError: expected an indented block
noch korrektur von zeile 10 (du hast anscheint nach \'login ein \' vergessen, zumindest ist das in zeile 11 so) kommt aber immer noch der selbe error :(


postet scripts am besten innerhalb von
Code:
[/B]
da ist nämlich noch ein fehler in zeile 14 -> find(ta rget)
und in der selben zeile ist noch mal ein leerzeichen zu viel, ebenso in zeile 20 , 44 und 48
 
Zuletzt bearbeitet:
AW: Monatliche DynDNS-Anmeldung per Script

So hier nochmal als Code gepostet.
Zeile 14 hast du recht, da war etwas verrutscht, Zeile 10 war aber i.O.
Code:
#!/usr/bin/python

import urllib
import urllib2
import cookielib
import getopt
import sys


def getRandHTMLResponse(response):
    target = "<form id=\'login"
    targetresponse = "<div id=\'loginbox\'"


    response = response[response.find(targetresponse):len(response)]
    return response[response.find(target)+len(target):response.find(target)+len(target):response.find(target)+len(target)+4]


def getHiddenRandHTMLResponse(response):
    target = "<input type=\'hidden\' name=\'multiform\' value=\'"
    targetresponse = "<div id=\'loginbox\'"
    parsedres = response[response.find(targetresponse):len(response)]
    return parsedres[parsedres.find(target)+len(target):parsedres.find(target)+len(target)+34]


def checkLogin(response):
    target = "<title>My Dyn Account</title>"
    if response.find(target) == -1:
        return False
    return True


def usage():
    print "usage: ./dyndnsAutoLogin [options]"
    print ""
    print "options:"
    print "-h, --help      show this help message and exit"
    print "-u, --username   set your DynDns login_username"
    print "-p, --password   set your DynDns login_password"
    print ""
    print "example:"
    print "./dyndnsAutoLogin -u username -p password"


class HTMLSession:
    cj = None
    opener = None
    txHeaders = None
    
    def __init__(self, txHeaders):
        #The CookieJar will hold any cookies necessary throughout the login process.
        self.cj = cookielib.MozillaCookieJar()
        self.txHeaders = txHeaders
        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
        urllib2.install_opener(self.opener)


    def setHeaders(self, txheaders):
        self.txHeaders = txHeaders


    def getHeaders(self):
        return self.txHeaders


    def openURI(self, uri, txdata):
        try:
            req = urllib2.Request(uri, txdata, self.txHeaders)
            # create a request object


            handle = urllib2.urlopen(req)
            # and open it to return a handle on the url


        except IOError as e:
            print 'we failed to open "%s".' % uri


            if hasattr(e, 'code'):
                print 'We failed with error code - %s.' % e.code
            elif hasattr(e, 'reason'):
                print "The error object has the following 'reason' attribute :"
                print e.reason
                print "This usually means the server doesn't exist,'"
                print "is down, or we don't have an internet connection."
                return None
        else:
            return handle.read()


def main(argv):
    username = ""
    password = ""
    hiddenval = ""
    theurl = "https://account.dyn.com/entrance/"
    thelogouturl = "https://account.dyn.com/entrance/?__logout=1"
    txdata = None
    txheaders =  {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
    # fake a user agent, some websites (like google) don't like automated exploration


    try:
        opts, args = getopt.getopt(argv, "hu:p:", ["help", "username=","password="])
    except getopt.GetoptError:
        usage()
        exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            exit(2)
        elif opt in ("-u", "--username"):
            username = arg
        elif opt in ("-p", "--password"):
            password = arg


    myhtmlsession = HTMLSession(txheaders)
    response = myhtmlsession.openURI(theurl, None)


    if response == None:
        sys.exit(0)


    hiddenval = getHiddenRandHTMLResponse(response)
    txdata = urllib.urlencode({'username':username, 'password':password, 'multiform':hiddenval, 'submit': "Log in"})


    response = myhtmlsession.openURI(theurl, txdata)
    if response == None:
        sys.exit(0)
    
    #we should sleep here for about 10 seconds.
    if checkLogin(response):
        print 'We have succesfully logged into DynDNS.'
    else:
        print 'Login failed'


    response = myhtmlsession.openURI(thelogouturl, None)
    if response == None:
        sys.exit(0)


if __name__ == "__main__":
    main(sys.argv[1:])
 
Zuletzt bearbeitet von einem Moderator:
AW: Monatliche DynDNS-Anmeldung per Script

das sieht schon viel besser aus. jetzt funktioniert es :)
 
AW: Monatliche DynDNS-Anmeldung per Script

Hallo !!

Gibt es einen Script für die monatliche DynDNS Anmeldung für die Fritzboxen 7390 mit wget anstatt von curl?

Gruß
 
AW: Monatliche DynDNS-Anmeldung per Script

auf der fritzbox kannst du eigentlich problemlos curl installieren lassen

ansonsten probier es doch einfach mal mit dem script für die Dreambox oder das von janni1 im post#10 oder meines aus post#218
 
Zurück
Oben