Neue SLA bei kostenlosen Dyndns Accounts mittels AutoLoginScript umgehen

Status
Für weitere Antworten geschlossen.

Franklyn

Benutzer
Mitglied seit
04. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
ja fast ... ich gehe davon aus, dass dein script nicht mit
Rich (BBCode):
Script: dyndnsAutoLogin #!/volume1/@appstore/Python/usr/local/bin/python
beginnt, sondern mit
Rich (BBCode):
#!/volume1/@appstore/Python/usr/local/bin/python

weiterhin gehe ich davon aus, dass du
Rich (BBCode):
username = "unknown"
password = "unknown"
logfile = "/volume1/daten/dyndnsAutoLogin.log"
in deinem script mit dem echten username und dem echten passwort ersetzt hast
und viel wichtiger, der logfile pfad auch hier richtig eingegeben wurde,
sprich der ordner "daten" auf volume1 existiert auch (Groß-/Kleinschreibung wurde beachtet!)

wenn das alles passt, dann kommen wir hier ohne ein manuelles ausführen des scriptes auf konsoleneben nicht weiter,
denn nur dort sehen wir den tatsächlichen fehler.

gruß

ja genau, passt so, wie du sagst!
Es ist doch richtig, wenn ich im Aufgabenplaner meiner DS das Script manuell ausführe, automatisch das Logfile in dem im Script angegebenen Ordner erzeugt werden sollte?
Wenn ja, funzt es leider nicht!
Ausser die im ToDo angegebenen potentiellen Fehlerquellen fällt mir echt nichts ein, was falsch sein könnte-
Ich werde mich mal in die Konsole einlesen, um es zu testen
Lässt mir halt keine Ruhe
Schönes WE
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Hallo,
vielen Dank für das script .....
leider bekomme ich es nicht "ans laufen"

Wenn ich versuche das script über die Konsole auszuführen, erscheint folgendes:
$ ./dyndnsAutoLogin
/bin/sh: ./dyndnsAutoLogin: not found

Auch wenn ich den ganzen Pfand angebe:
/volume1/install/scripts/dyndnsAutoLogin
erscheint die Meldung ....

Kann mir bitte jemand erklären, wie der Fehler zustande kommt?

Vielen Dank!
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
hi
Rich (BBCode):
$ ./dyndnsAutoLogin
/bin/sh: ./dyndnsAutoLogin: not found
kommt dahier, weil du versuchst das skript vom wurzelverzeichnis "/" heraus auszuführen, wo es aber nicht liegt.
weil er es dort nicht finden kann sagt er dir "not found".
du musst den richtigen pfad angeben:
/volume1/install/scripts/dyndnsAutoLogin

wäre im prinzip der richtige pfad ... vorrausgesetzt du hast es da auch liegen ?!
mach mal ein "ls -ls /volume1/install/scripts/" und poste das ergebnis

wenn er dir da ein dyndnsAutoLogin anzeigt dann poste auch mal ein "cat /volume1/install/scripts/dyndnsAutoLogin"

gruß
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Vielen Dank für die schnelle Antwort!!

8 -rwxrwxrwx 1 admin users 4720 Jul 21 15:14 dyndnsAutoLogin

Rich (BBCode):
#!/volume1/@appstore/Python/usr/local/bin/python2.7

import urllib
import urllib2
import cookielib
import getopt
import sys
import logging

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
                logging.error('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 = "XXXXXXX"
    password = "XXXXXXX"
    logfile = "/volume1/Logfiles/DyndnsAutoLog/dyndnsAutoLogin.log"
    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
    logging.basicConfig(filename=logfile,level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y/%m

    try:
        opts, args = getopt.getopt(argv, "hu:p:", ["help", "username=","password="])
    except getopt.GetoptError:
        usage()
        logging.warning('Manual login with incorrect parameters')
        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.'
        logging.info('We have succesfully logged into DynDNS.')
    else:
        print 'Login failed'
        logging.info('Login failed')

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

if __name__ == "__main__":


Das kommt dabei raus ....
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
bin mir jetzt nicht sicher ob es ein fehler beim kopiern gab aber bei deinem script fehlt die letzte zeile:
Rich (BBCode):
if __name__ == "__main__":
    main(sys.argv[1:])
müsste so aussehen.

aber an sonsten sollte das eigentlich gehen.
was genau gibst du beim ausführen genau ein?

Rich (BBCode):
DiskStation>/volume1/install/scripts/dyndnsAutoLogin
das sollte eigentlich funktionieren

gruß


//EDIT
mir ist gerade aufgefallen das ich vorhin völligen blödsinn geschreiben habe.
./dyndnsAutoLogin führt das script nicht vom wurzelverzeichnis aus sondern von dem verzeichnis wo du gerade bist.
wenn du dich nicht in /volume1/install/scripts/ befunden hast dann wird er das script nicht finden und sagt dir "not found"

war heut wohl doch zu lange in der sonne gelegen :cool:
ein "pwd" zeigt dir an so du bist. mit "cd /volume1/install/scripts" wechselst du in das richtige verzeichnis und kannst es dann nochmal probieren mit "./dyndnsAutoLogin"

gruß
 
Zuletzt bearbeitet:

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Stimmt ... das hatte ich versehentlich abgeschnitten ....

Rich (BBCode):
if __name__ == "__main__":
    main(sys.argv[1:])Press any key to continue...

Im richtigen Verzeichnis bin ich, aber es bleibt beim "not found" .... sehr seltsam!

Rich (BBCode):
HogosServer> cd /volume1/install/scripts
HogosServer> ./dyndnsAutoLogin
-ash: ./dyndnsAutoLogin: not found
HogosServer> pwd
/volume1/install/scripts
HogosServer> ./dyndnsAutoLogin
-ash: ./dyndnsAutoLogin: not found
HogosServer>


Rich (BBCode):
HogosServer> dir
drwxrwxrwx    2 admin    users         4096 Jul 21 18:44 .
drwxrwxrwx    3 root     root          4096 May 30 21:41 ..
-rwxrwxrwx    1 admin    users         4700 Jul 21 18:38 dyndnsAutoLogin
 
Zuletzt bearbeitet:

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Hallo, als wer sollte das Script ausgeführt werden ? Gruß Jo
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
????
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
An dem NAS bin ich über Firefox als "admin" und über telnet auch mit "admin" angemeldet ....
 
Zuletzt bearbeitet:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
hi
mach mal aus
Rich (BBCode):
#!/volume1/@appstore/Python/usr/local/bin/python2.7
dem, das:
Rich (BBCode):
#!/volume1/@appstore/Python/usr/local/bin/python

besser noch mach mal ein
Rich (BBCode):
ls -la /volume1/@appstore/Python/usr/local/bin/

scheint als stimmt irgendwas mit deiner python version nicht...

gruß
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Die Version ist die zuletzt von Synology bereitgestellte, 2.7.3-0014 ... Status: Läuft ...

Rich (BBCode):
HogosServer> ls -la /volume1/@appstore/Python/usr/local/bin/
drwxr-xr-x    2 root     root          4096 Jul 16 18:10 .
drwxr-xr-x    6 root     root          4096 Jul 16 18:11 ..
-rwxr-xr-x    1 root     root           268 May 31 14:02 change_tz
-rwxr-xr-x    1 root     root           260 May 31 14:02 coverage
-rwxr-xr-x    1 root     root           268 May 31 14:02 davserver
-rwxr-xr-x    1 root     root           323 May 31 14:02 easy_install
-rwxr-xr-x    1 root     root           331 May 31 14:02 easy_install-2.6
-rwxr-xr-x    1 root     root           266 May 31 14:02 ics_diff
-rwxr-xr-x    1 root     root          1193 May 31 13:26 mako-render
-rwxr-xr-x    1 root     root           256 May 31 14:02 nosetests
-rwxr-xr-x    1 root     root           264 May 31 14:02 nosetests-2.6
-rwxr-xr-x    1 root     root          2263 May 31 13:26 pilconvert.py
-rwxr-xr-x    1 root     root         15315 May 31 13:26 pildriver.py
-rwxr-xr-x    1 root     root          2498 May 31 13:26 pilfile.py
-rwxr-xr-x    1 root     root           960 Apr 26  2012 pilfont.py
-rwxr-xr-x    1 root     root          2307 May 31 13:26 pilprint.py
-rwxr-xr-x    1 root     root           255 May 31 14:02 pybabel
lrwxrwxrwx    1 root     root             9 Jul 16 18:10 python -> python2.7
lrwxrwxrwx    1 root     root             9 Jul 16 18:10 python2 -> python2.7
lrwxrwxrwx    1 root     root            16 Jul 16 18:10 python2-config -> python2.7-config
-rwxr-xr-x    1 root     root       2794888 May 31 14:02 python2.7
-rwxr-xr-x    1 root     root           593 May 31 13:28 rst2html.py
-rwxr-xr-x    1 root     root           790 May 31 13:28 rst2latex.py
-rwxr-xr-x    1 root     root           599 May 31 13:28 rst2man.py
-rwxr-xr-x    1 root     root           763 May 31 13:28 rst2odt.py
-rwxr-xr-x    1 root     root          1697 May 31 13:28 rst2odt_prepstyles.py
-rwxr-xr-x    1 root     root           600 May 31 13:28 rst2pseudoxml.py
-rwxr-xr-x    1 root     root           636 May 31 13:28 rst2s5.py
-rwxr-xr-x    1 root     root           785 May 31 13:28 rst2xetex.py
-rwxr-xr-x    1 root     root           601 May 31 13:28 rst2xml.py
-rwxr-xr-x    1 root     root           669 May 31 13:28 rstpep2html.py
-rwxr-xr-x    1 root     root           263 May 31 14:02 unit2
-rwxr-xr-x    1 root     root           271 May 31 14:02 unit2-2.6
-rwxr-xr-x    1 root     root            79 May 31 13:28 unit2.py
-rwxr-xr-x    1 root     root           267 May 31 14:02 wsdl2dispatch
-rwxr-xr-x    1 root     root           255 May 31 14:02 wsdl2py
 
Zuletzt bearbeitet:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
hmm sieht auch gut aus
jetzt fällt mir nurnoch eins ein.
schau mal mit
Rich (BBCode):
vi /volume1/install/scripts/dyndnsAutoLogin
nach ob die erste zeile passt insbesondere ob das zeilenende passt und nicht mit "^M" oder so aufhört...
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Stimmt ... da ist ein "^M" am Ende ... ich dachte, das gehört dahin, weil es ein Zeilenwechsel ist ....
... wenn es nich dahin gehört, wie bekomme ich es dann weg??

Rich (BBCode):
#!/volume1/@appstore/Python/usr/local/bin/python2.7^M
^M
import urllib^M
import urllib2^M
import cookielib^M
import getopt^M
import sys^M
import logging^M
^M
 
Zuletzt bearbeitet:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
nein das gehört da nicht hin^^
das kommt davon, das windows und linux andere zeichen für zeilenumbrüche verwenden. dein editor war bestimmt noch auf den von windows voreingestellt.

entweder du stellt das in deinem editor um und kopierst dir das script dann neu rein
oder du löschst die zeichen händisch mit vi

datei wie vorhin mit vi die datei öffnen, dann die taste "i" drücken um in den bearbeiten-modus zu kommen, dann die zeichen am ende JEDER zeile löschen und am ende ESC-taste drücken, ":wq" schreiben und mit ENTER bestätigen

fertig
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Das wars .... vielen Dank für deine Zeit und Hilfe!

Rich (BBCode):
HogosServer> ./dyndnsAutoLogin
We have succesfully logged into DynDNS.
HogosServer>


... und ich habe wieder etwas "Grundlegendes" über Linux gelernt!! :eek:

@joku: es machte keinen Unterschied ob ich mit "admnin" oder "root" angemeldet war!
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
schön
ich werds bei gelegenheit auch nochmal bei häufige fehler im wiki mit aufnehmen

gruß
 

Hogo Dorn

Benutzer
Mitglied seit
08. Jun 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Vielen Dank für den Hinweis!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!