基本信息
| 服务器选择 | python打包exe | 博客时间 | 2023.08.04 | 
| 搭建结果 | 开机自启动,发送伪装请求头实现登录 |  |  | 
只想拿来就用,可以跳到最后,请给我GitHub一个star或者一个follow~
分析登录过程
F12查看登录校园网过程
登录校园网的请求如下:
请求URL:http://172.30.255.42:801/eportal/portal/login?callback=dr1003&login_method=1&user_account=用户名&user_password=密码&wlan_user_ip=172.30.66.101&wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=172.30.255.41&wlan_ac_name=&jsVersion=4.1.3&terminal_type=1&lang=zh-cn&v=2573&lang=zh
请求方法:GET
请求头部信息:
| 12
 3
 4
 5
 6
 7
 8
 
 | Accept: /Accept-Encoding: gzip, deflate
 Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
 Connection: keep-alive
 DNT: 1
 Host: 172.30.255.42:801
 Referer: http://172.30.255.42/
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188
 
 | 
查询字符串参数:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | callback=dr1003login_method=1
 user_account=用户账号
 user_password=密码
 wlan_user_ip=172.30.66.101
 wlan_user_ipv6=
 wlan_user_mac=000000000000
 wlan_ac_ip=172.30.255.41
 wlan_ac_name=
 jsVersion=4.1.3
 terminal_type=1
 lang=zh-cn
 v=2573
 lang=zh
 
 | 
这个请求包含用户账号、密码以及其他一些参数,是用于登录校园网的请求。可以使用Python的requests库或其他HTTP客户端库来发送这个GET请求,模拟登录校园网。
python实现
| 12
 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
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 
 | import requestsimport socket
 import json
 def get_local_ip():
 try:
 
 host_name = socket.gethostname()
 
 
 local_ip = socket.gethostbyname(host_name)
 return local_ip
 except socket.error as e:
 print("获取本地IP地址失败:", e)
 return None
 
 def is_internet_connected():
 try:
 
 response = requests.get("http://www.baidu.com", timeout=5)
 return True if response.status_code == 200 else False
 except requests.exceptions.RequestException:
 return False
 
 def login_campus(username, password):
 
 local_ip = get_local_ip()
 if not local_ip:
 print("无法获取本地IP地址。登录失败。")
 return
 
 
 login_url = "http://172.30.255.42:801/eportal/portal/login"
 headers = {
 "Accept": "*/*",
 "Accept-Encoding": "gzip, deflate",
 "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
 "Connection": "keep-alive",
 "DNT": "1",
 "Host": "172.30.255.42:801",
 "Referer": "http://172.30.255.42/",
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188"
 }
 
 
 params = {
 "callback": "dr1003",
 "login_method": "1",
 "user_account": username,
 "user_password": password,
 "wlan_user_ip": local_ip,
 "wlan_user_ipv6": "",
 "wlan_user_mac": "000000000000",
 "wlan_ac_ip": "172.30.255.41",
 "wlan_ac_name": "",
 "jsVersion": "4.1.3",
 "terminal_type": "1",
 "lang": "zh-cn",
 "v": "2573",
 }
 
 try:
 
 response = requests.get(login_url, headers=headers, params=params)
 
 
 
 
 if "result" in response.text and "msg" in response.text:
 json_response = response.text.split("(", 1)[1].rsplit(")", 1)[0]
 data = json.loads(json_response)
 
 if data["result"] == 1 and data["msg"] == "Portal协议认证成功!":
 print("登录成功!")
 if is_internet_connected():
 print("已成功联网!")
 else:
 print("未能联网。")
 elif data["result"] == 0 and data["msg"] == "IP: 172.29.20.95 已经在线!" and data["ret_code"] == 2:
 print("已经在线")
 else:
 print("登录失败,请检查用户名和密码。")
 else:
 print("登录失败,请检查用户名和密码。")
 except requests.exceptions.RequestException as e:
 print("登录失败:", e)
 
 
 if __name__ == "__main__":
 
 username = "用户名"
 password = "密码"
 
 
 login_campus(username, password)
 
 
 input("Press Enter to exit...")
 
 | 
打包exe
使用pyinstaller,从Python脚本创建独立的可执行文件。以下是操作:
安装PyInstaller:
打开命令提示符或终端,然后使用pip安装pyinstaller:
创建exe
cd进入到Python脚本所在的目录。
使用pyinstaller创建可执行文件:
| 1
 | pyinstaller --onefile your_script_name.py
 | 
将_script_name.py替换为Python脚本文件的名称(例如campus_login.py)。
–onefile选项告诉PyInstaller将所有内容捆绑到一个.exe文件中。
运行上述命令后,PyInstaller将在与脚本相同的目录中创建一个新的dist文件夹。在dist文件夹中,会发现与脚本同名的独立可执行文件(例如,your_script_name.exe)。
设置开机自启动
- win+R 启动运行界面
- 输入:shell:startup

- 把快捷启动项放入启动文件夹

之后就可以开机启动啦
安装包使用教程
- 点击链接进入GitHub仓库,找到右侧release!

- 下载exe文件
- 设置开机自启动(看前文)
注意 : 第一次使用需要点击运行一下输入用户密码;以后如果想换账号或者输错密码需要修改,删掉同一文件夹下的config.ini文件即可
最后球球大家给我的项目一个star吧0.0~ 或者一个follow~
参考链接
没有参考!独立创作!