仅用于登录中国矿业大学校园网(联通)
可以自动记录用户名和密码,省去二次填写的麻烦

  • 效果

  • 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import tkinter as tk
    import requests
    import re
    import tkinter.messagebox
    import os
    # 创建一个实例
    window = tk.Tk()
    # 检查记录文件
    path = '存放记录文件的地址'
    temp1 = ''
    temp2 = ''
    flag = False # 用来标记是否有记录文件
    if(os.path.isfile(path)):
    f=open(path,'r',encoding='utf8')
    temp1 = f.readline().strip('\n')
    temp2 = f.readline().strip('\n')
    flag = True
    f.close()
    # 定义用户名和密码
    var_username = tk.StringVar(value=temp1)
    var_password = tk.StringVar(value=temp2)
    username = ''
    password = ''
    # 点击登录按钮时的命令
    def login():
    try:
    # 获取wlan_user_ip
    r = requests.get("http://123.123.123.123/",timeout=1)
    r.encoding = r.apparent_encoding
    ip_list = []
    result = re.findall(r'\D(?:\d{1,3}\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\D', r.text)
    for rs in result:
    ret = re.search(r'((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)', rs)
    if ret:
    ip_list.append(ret.group())
    # 获取用户输入的用户名和密码
    username = var_username.get()
    password = var_password.get()
    # 登录请求
    r = requests.get(
    "http://10.2.5.251:801/eportal/?login_method=1&user_account=" + username + "%40unicom&user_password=" + password + "&wlan_user_ip=" +
    ip_list[1] + "&c=Portal&a=login",timeout=1)
    # 如果没有记录文件,则新建一个用来存放用户名密码的记录文件
    if (not flag):
    f = open(path, 'w', encoding='utf8')
    f.write(username + '\n' + password + '\n')
    f.close()
    # 检测是否登录成功
    r.encoding = r.apparent_encoding
    find_result = r.text.find('认证成功')
    if(find_result==-1):
    # 用户名或者密码错误
    tkinter.messagebox.askokcancel(title='提示', message='登录失败\n1.您可能已经联网\n2.请检查一下您的用户名或密码')
    else:
    tkinter.messagebox.askokcancel(title='恭喜!', message='连接成功!')
    except:
    # 如果已经登录校园网,则可能会抛出超时异常
    tkinter.messagebox.askokcancel(title='提示', message='登录失败\n1.您可能已经联网\n2.请检查一下您的用户名或密码')
    # 建立窗口
    window.title("校园网登录-CCATOM")
    window.geometry('300x100')
    # 创建各个控件
    frame = tk.Frame(window)
    t1 = tk.Label(frame,text="用户名").grid(row=0,column=0,sticky='w',padx=5,pady=5) # 用户名标签
    e1 = tk.Entry(frame, show=None,textvariable=var_username).grid(row=0, column=1, sticky='w',padx=10) # 用户名输入框
    t2 = tk.Label(frame,text="密码").grid(row=1, column=0,padx=5,pady=5) # 密码标签
    e2 = tk.Entry(frame, show='*',textvariable=var_password).grid(row=1, column=1, sticky='w',padx=10) # 密码输入框
    b = tk.Button(window,width = 10,text="登录",command=login) # 登录按钮
    frame.pack()
    b.pack(anchor='center')
    window.mainloop()
  • 下载链接
    链接:https://pan.baidu.com/s/12jannt2nF-xWkoBHCQ01Zw
    提取码:4e3q


 评论

载入天数...载入时分秒...