一.原理
利用python的requests库对校园网登录接口进行post请求实现校园网自动拨号登录
二.代码
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
| import sys import requests import json
queryString='' login_url = "http://10.200.7.3/eportal/InterFace.do?method=login" logout_url = "http://10.200.7.3/eportal/InterFace.do?method=logout" User_Agent = "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Mobile Safari/537.36" userid="" password="" in2out = "login"
def post(): headers = {"User-Agent":User_Agent, "Accept": "*/*", "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2", "Accept-Encoding": "gzip, deflate", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","Host": "10.200.7.3", "Origin": "http://10.200.7.3", "Connection": "close", "Referer": queryString} data = {"userId": userid, "password": password, "service": 'internet', "queryString": queryString, "operatorPwd": '', "operatorUserId": '', "validcode": '', "passwordEncrypt": "false"} if (in2out == "login"): response = requests.post(login_url, headers=headers, data=data) else: response = requests.post(logout_url, headers=headers, data=data) response.encoding = response.apparent_encoding response=json.loads(response.text) if(response["result"]=="success" and response["message"]==""): print("拨号成功") else: print(response["result"]+" "+response["message"])
if __name__ == '__main__': try: sys.argv[1] in2out = "logout" except: in2out = "login" post()
|
三.演示
不带参数默认为拨号,带参数为退出登录。

四.说明
此代码仅测试通过湖北汽车工业学院图书馆HUATlib校园网自动认证,Windows应该可以配合其他工具实现链接Wi-Fi自动执行代码。