本文内容参考: 校园网GiWiFi模拟登陆
GiWiFi模拟登录步骤
1, 获取基本参数:
首先需要请求网关地址:172.17.1.2
如果你连接了GiWiFi并且未进行认证,那么本地址将会重定向到GiWiFi的登录界面,该页面的url地址中包含了以下参数(数据已做处理)
参数名 | 值 | 参数说明 |
---|---|---|
gw_address | 172.17.1.2 | 网关地址 |
gw_port | 8060 | 网关端口 |
gw_id | GWIFI-****** | AP设备的id |
ip | 172.17.11.11 | 分配的IP地址 |
mac | AA:00:11:22:33:44 | 访问设备的MAC地址 |
url | http%3A//www.baidu.com | 经过url编码过的来源网址,任意url即可 |
获取GiWiFi 登录界面 的网页源码可得到以下参数:
参数名 | 值 | 参数说明 |
---|---|---|
sign | KjX***HHT | 在 登录界面 的源码中(需要进行url编码处理!!!) |
page_time | 1569726305 | 当前时间戳, 在 登录界面 的源码中 |
2, 根据基本参数获取其他参数:
GET请求上面的URL即可获得一个jsonp格式的返回内容(没有callback之后的参数将无法返回acsign值, json中的data.sign为 acsign)
(data.auth_state为认证状态: 0->直连, 2->已认证, 200->已认证,只能访问内网, 253->临时放行, 其他->需要认证)
参数名 | 值 | 参数说明 |
---|---|---|
access_type | 1 | 含义未知 |
station_sn | 000babababab | 应该是基站sn |
client_mac | AA:00:11:22:33:44 | 和参数mac的值一样 |
online_time | 0 | 在线时间,单位: 秒 (没什么用) |
logout_reason | 0 | 退出登录原因 (没什么用) |
contact_phone | 400-038-5858 | 一般都是这个电话 |
suggest_phone | 400-038-5858 | 一般都是这个电话 |
station_cloud | login.gwifi.com.cn | 一般都是这个网址 |
acsign | 6724a0d64b04c1f2f974699f2d5195f1 | 用于获取认证token |
此外我们还需构造三个参数:
参数名 | 值 | 参数说明 |
---|---|---|
btype | phone/pad/pc | 设备类型, 分别对应: 手机/平板/电脑 |
name | *********** | 用户账号 |
password | ****** | 用户密码 |
至此,所需参数都已经准备好了!
3, 获取wifidog认证token
POST http://login.gwifi.com.cn/cmps/admin.php/api/loginaction?round=(3位随机数) HTTP/1.1
Host: login.gwifi.com.cn
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
gw_id=(gw_id)&gw_address=(gw_address)&gw_port=(gw_port)&url=(url)&mac=(mac)&btype=(btype)&page_time=(page_time)&lastaccessurl=&user_agent=&devicemode=&access_type=(access_type)&station_sn=(station_sn)&client_mac=(client_mac)&online_time=(online_time)&logout_reason=(logout_reason)&contact_phone=(contact_phone)&suggest_phone=(contact_phone)&station_cloud=(station_cloud)&acsign=(acsign)&sign=(sign)&name=(name)&password=(password)
返回值说明:
(1): 登录失败,参数有误
{"status":1,"info":"http:\/\/www.baidu.com","data":1}
(2): 登录失败, 并返回失败原因
{"status":0,"info":"失败原因","data":0}
(3): 登录成功, 返回认证地址
{"status":1,"info":"http:\/\/172.17.1.2:8060\/wifidog\/auth?token=8af4644e42bdf149ad84dc07fe7fdb1c57a2da4c&info=","data":{"reasoncode":0}}
4, 访问认证地址,完成认证
如果第三步成功登录,则会返回一个带有token参数的URL(即json中的info),GET请求该URL,即可完成认证!