(一)问题描述:所在网络打开网页,会跳到认证页面,需要输入用户名和密码,认证通过后,才会正常上网。对于纯命令行的centos,无法通过浏览器进入认证页面进行认证。
(二)解决手段:使用curl命令模拟浏览器的表单提交。
具体步骤:
1、打开浏览器,打开认证页面,输入用户名密码,在点击登录之前,按F12打开调试页面,进入network选项,此时点击登录按钮
2、登录成功后,在network下看到多了两项,选中login.php,右键选中Copy下的“Copy as cURL(bash)”
3、复制的内容如下
curl 'http://*.*.14.100/ac_portal/login.php' -H 'Connection: keep-alive' -H 'Accept: */*' -H 'Origin: http://*.*.14.100' -H 'X-Requested-With: XMLHttpRequest' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 OPR/67.0.3575.79' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Referer: http://*.*.14.100/ac_portal/20210416230904/pc.html?template=20210416230904&tabs=pwd&vlanid=0&_ID_=0&switch_url=&url=&controller_type=&mac=*-*-*-15-af-10' -H 'Accept-Language: zh-CN,zh;q=0.9' -H 'Cookie: AUTHSESSID=ae0db08efd40' --data 'opr=pwdLogin&userName=XXXXXX&pwd=XXXXXX&rememberPwd=0&lang=chs' --compressed --insecure
4、将这段代码直接贴到centos下,得到如下反馈,说明已通过认证,可正常上网。
{"success":true,"msg":"logon success","action":"logout","pop":0,"userName":"XXXXXX", "location":"http://*.*.14.100/ac_portal/proxy.html?type=logout"}[root@localhost ~]#