Schmitty01
Benutzer
- Mitglied seit
- 19. Aug 2010
- Beiträge
- 28
- Punkte für Reaktionen
- 0
- Punkte
- 1
#!/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
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):
logfile = "./dyndnsAutoLogin.log"
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
logging.basicConfig(filename=logfile,level=logging.DEBUG, format='%(asctime)s %(message)s', datefmt='%Y/%m/%d %H:%M:%S -')
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.'
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__":
main(sys.argv[1:])
2013/05/26 20:28:09 - Login failed
2013/05/26 20:30:29 - Login failed
2013/05/26 20:30:59 - We have succesfully logged into DynDNS.
super wiki-eintrag. respekt. damit sollte nun jeder klar kommen.
Script: dyndnsAutoLogin #!/volume1/@appstore/Python/usr/local/bin/python
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 = "unknown"
password = "unknown"
logfile = "/volume1/daten/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/%d %H:%M:%S')
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__":
main(sys.argv[1:])
Script: dyndnsAutoLogin #!/volume1/@appstore/Python/usr/local/bin/python
#!/volume1/@appstore/Python/usr/local/bin/python
username = "unknown"
password = "unknown"
logfile = "/volume1/daten/dyndnsAutoLogin.log"
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.
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!