#!/usr/bin/python # -*- coding: utf-8 -*- import urllib, urllib2, re from struct import * import hashlib import os import sys import xmlrpclib #from win32com.shell import shellcon, shell from xml.dom import minidom def main(): tcp_connection_status("192.168.1.1") return 0 def tcp_connection_status(nodeip): username = 'uname' password = 'pass' response = '' response = urllib2.urlopen('https://' + nodeip + '/auth1.html') response_data = response.read() #print response_data id_obj = re.search('name=\"id\" value=\"[A-Za-z0-9]*\" size=',response_data).group(0) param1_obj = re.search('NAME=\"param1\" VALUE=\"[A-Za-z0-9]*\"',response_data).group(0) param2_obj = re.search('NAME=\"param2\" VALUE=\"[A-Za-z0-9]*\"',response_data).group(0) sessId_obj = re.search('NAME=\"sessId\" VALUE=\"[A-Za-z0-9]*\"',response_data).group(0) param1 = param1_obj.split('\"')[3] param2 = param2_obj.split('\"')[3] id = id_obj.split('\"')[3] sessId= sessId_obj.split('\"')[3] param1x = param1.decode("hex") idx = id.decode("hex") digest = hashlib.md5(idx+password+param1x).hexdigest() login_data = urllib.urlencode({'uName' : username, 'sessId' : sessId, 'digest' : digest, 'id' : id, 'pass' : ''}) request = urllib2.Request('https://' + nodeip + '/auth.cgi',login_data) request.add_header('Referer', 'http://' + nodeip + '/auth1.html') request.add_header('Cookie', 'SessId='+sessId) response = urllib2.urlopen(request).read() request = urllib2.Request('https://' + nodeip + '/outlookView.html') request.add_header('Referer', 'http://' + nodeip + '/auth.cgi') request.add_header('Cookie', 'SessId='+sessId) response = urllib2.urlopen(request) response_data = response.read() #print response_data loginToken_obj = re.search('loginToken = \"[A-Za-z0-9]*\"',response_data).group(0) loginToken = loginToken_obj.split('\"')[1] post_data = urllib.urlencode({'loginToken':loginToken, 'cgiaction':'none'}) request = urllib2.Request('https://' + nodeip + '/main.cgi',post_data) request.add_header('Referer', 'http://' + nodeip + '/auth.cgi') request.add_header('Cookie', 'SessId='+sessId) response = urllib2.urlopen(request) response_data = response.read() post_data = urllib.urlencode({'loginToken':loginToken, 'action':'connStats'}) request = urllib2.Request('https://' + nodeip + '/log',post_data) request.add_header('Cookie', 'SessId='+sessId) response = urllib2.urlopen(request) response_data = response.read() print response_data if __name__ == "__main__": sys.exit(main())