• 北邮校园网管登陆python脚本


    View Code
    #!/usr/bin/env python
    #Author: wangkendy (wkendy@gmail.com)
    #2012/9/7
    
    import sys
    import urllib
    import getopt
    import hashlib
    import re
    
    def usage():
        print sys.argv[0], "-a [login|logout|check] -u <username> -p <password>"
        sys.exit(2)
    
    def login(username, password):
        pid = "1"
        calg = "12345678"
        password = pid + password + calg
        password = hashlib.md5(password).hexdigest()+calg+pid
        params = urllib.urlencode({'DDDDD':username, 
                                'upass':password, 'R1':0, 
                                'R2':1, 'para':'00', 'n':100, '0MKKey':'123456'})
        posturl = 'http://gw.bupt.edu.cn'
        f = urllib.urlopen(posturl, params)
        response = f.read()
    #print response
        match = re.search('You have successfully logged into our system.', response);
        if (match):
            print match.group(0)
        else:
            print "Login failed.\n"
    
    def check():
        geturl = 'http://gw.bupt.edu.cn/'
        f = urllib.urlopen(geturl)
        response = f.read()
    #time='4435      ';flow='635853    ';fsele=1;fee='0         '
        match = re.search(r'time=\'(\d+)\s*\';flow=\'(\d+)\s*\';fsele=(\d+);fee=\'(\d+)\s+\'', response)    
        if match:
            time = int(match.group(1))
            flow = int(match.group(2))
            fsele = int(match.group(3))
            fee = int(match.group(4))
            print 'Used time : %d Min' % time
            print 'Used internet traffic : %f MByte' % (flow*1.0/1024)
            if fsele==1:
                print 'Balance : RMB ', (fee*1.0/10000)
        else:
            print "You are not logged in.\n"
    
    #get http://gw.bupt.edu.cn/F.htm logout
    def logout():
        geturl = 'http://gw.bupt.edu.cn/F.htm'
        f = urllib.urlopen(geturl)
        response = f.read()
    #print response
    #match = re.search('Logout successfully', response)
    #    if match:
    #        print match.group(0)
        match = re.search(r'Msg=(\d+);time=\'(\d+)\s*\';flow=\'(\d+)\s*\';fsele=(\d+);fee=\'(\d+)\s+\'', response)    
        if match:
            Msg = int(match.group(1))
            time = int(match.group(2))
            flow = int(match.group(3))
            fsele = int(match.group(4))
            fee = int(match.group(5))
            if Msg == 14:
                print 'Logout successfully.'
            else:
                print "Error Code:%d" % Msg
            print 'Used time : %d Min' % time
            print 'Used internet traffic : %f MByte' % (flow*1.0/1024)
            if fsele==1:
                print 'Balance : RMB ', (fee*1.0/10000)
        else:
            print "You are not logged in.\n"
    
    def main():
        try:
            (opts, args) = getopt.getopt(sys.argv[1:], "a:u:p:h")
        except getopt.GetoptError, err:
            print str(err)
            usage()
            sys.exit(2)
    
        action = None
        username = None
        passwd = None
        for (o, a) in opts:
            if o == "-a":
                action = a
            elif o == "-u":
                username = a;
            elif o == "-p":
                passwd = a
            elif o == "-h":
                usage()
        
        if (action and username and passwd):
            if action == "login":
                login(username, passwd)
            elif action == "logout":
                logout()
            else:
                usage()
        elif action == "logout":
            logout()
        elif action == "check":
            check()
        else:
            usage()
    if __name__ == "__main__":
        main()
  • 相关阅读:
    实现Path2.0中绚丽的的旋转菜单
    ColorMatrixColorFilter颜色过滤(离线用户的灰色头像处理)
    网上发现的一个android UI包
    圆角背景的ListView
    自定义Gallery 滑动中图片自动突出显示
    python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)
    Linux(deepin) 系统: 解决 matplotlib 中文乱码问题
    python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)
    API接口防止参数篡改和重放攻击
    API接口防止参数篡改和重放攻击
  • 原文地址:https://www.cnblogs.com/buptmemory/p/2847003.html
Copyright © 2020-2023  润新知