GiWiFi模拟网页认证[python]

前言

由于学校采用Giwifi作为校园网接入点,每天凌晨都需要重新认证,于是便有了这个脚本
不需要多余的任何操作,只需要将代码里的
‘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 许可协议。

点赞
  1. 河童说道:
    Firefox Android 10
    省流:自动post表单以联网
    1. Timo说道:
      Google Chrome Android 11
      实际上步骤还有两次get请求,先是get请求网关获取构造post的参数,发起post请求之后服务器返回token,之后再次get访问token才能上网
      1. 河童说道:
        Firefox Android 10
        (´•ω•̥`)

发表评论

电子邮件地址不会被公开。必填项已用 * 标注