基本信息
服务器选择 |
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
请求头部信息:
1 2 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
|
查询字符串参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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
|
这个请求包含用户账号、密码以及其他一些参数,是用于登录校园网的请求。可以使用Python的requests库或其他HTTP客户端库来发送这个GET请求,模拟登录校园网。
python实现
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 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 requests import 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~
参考链接
没有参考!独立创作!