仅用于登录中国矿业大学校园网
可以自动记录用户名和密码,省去二次填写的麻烦
-
效果
-
代码
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