一.原理

利用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='' #浏览器请求头queryString字段里面包含了Mac地址
login_url = "http://10.200.7.3/eportal/InterFace.do?method=login" #处理登录请求的url,我们需要对它进行post请求
logout_url = "http://10.200.7.3/eportal/InterFace.do?method=logout" #退出请求url
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)
# print(response)
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自动执行代码。