僅用於登錄中國礦業大學校園網
可以自動記錄用戶名和密碼,省去二次填寫的麻煩
-
效果
-
代碼
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