本文最后更新于 270 天前,其中的信息可能已经有所发展或是发生改变。
前言
由于学校采用Giwifi作为校园网接入点,每天凌晨都需要重新认证,于是便有了这个脚本
不需要多余的任何操作,只需要将代码里的
‘name’: ‘your iphone’,
‘password’: ‘password’,
更换自己的手机号和密码即可
不需要多余的任何操作,只需要将代码里的
‘name’: ‘your iphone’,
‘password’: ‘password’,
更换自己的手机号和密码即可
import requests,re headers = { 'Host':'login.gwifi.com.cn', 'Pragma':'no-cache', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36' } r = requests.get("http://www.baidu.com",allow_redirects=True,verify=False,headers=headers) page_time = re.findall('name="page_time" value="(.*?)"',r.text)[0] gw_id = re.findall('name="gw_id" value="(.*?)"',r.text)[0] mac = re.findall('name="mac" value="(.*?)"',r.text)[0] sign = re.findall('name="sign" value="(.*?)"',r.text)[0] data = { 'name': 'your iphone', 'password': 'password', 'page_time':page_time, 'gw_id':gw_id, 'mac':mac, 'client_ip':'', 'client_mac':'', 'timestamp':'', 'access_type':'', 'acsign':'', 'link_data':'', 'account_type':'', 'sign':sign } url = "http://login.gwifi.com.cn"+re.findall("'login.*?return '(.*?)'",r.text,re.DOTALL)[0] print(data) print(url) r = requests.post(url,headers=headers,data=data) ## 返回token info = r.json()['info'] r = requests.get(info) print(r.text) r = requests.get("http://www.baidu.com") if "Loading" in r.text: print("登录失败") else: print("登陆成功")
实现原理
连接到GIWIFI后,打开任意网址都会自动跳转到GIWIFI登录页面,而登录页面源码有所有的需要的请求参数,将参数提取出来,并根据抓包得到的请求链接进行构造请求登录GIWIFI。
使用方法
可以将代码写进路由器中并设置自动任务,在特定的时间运行即可
也可以在电脑安装python环境后运行
文章作者: Timo在此/从零开始的数据猿
文章链接: https://bbs.xiao-xin6.cn/archives/165
版权声明: 代码部分转载于csdn原文链接:这里跳转其余部分采用 CC BY-NC-SA 4.0 许可协议。
文章链接: https://bbs.xiao-xin6.cn/archives/165
版权声明: 代码部分转载于csdn原文链接:这里跳转其余部分采用 CC BY-NC-SA 4.0 许可协议。
省流:自动post表单以联网
实际上步骤还有两次get请求,先是get请求网关获取构造post的参数,发起post请求之后服务器返回token,之后再次get访问token才能上网
(´•ω•̥`)