【ECNU】bash登陆校园网
本文于2017年10月13日发表于知乎专栏,查看原文
本文于2017年10月14日发表于微信公众号,查看原文
校园网的登陆页面是个网页,bash不能浏览网页,但是也有联网需求。幸好,curl命令可以发送POST请求。
一、curl发送POST
我们检查登陆页面(https://login.ecnu.edu.cn/srun_portal_pc.php)的源代码,发现使用了jQuery,还有一个叫srun_portal.js的JavaScript脚本,显然登陆的POST请求就是从这里发送的:
打开srun_portal.js,我们看到这段post请求,下面还有login_ok,很显然就是这段了。记下post地址https://login.ecnu.edu.cn/include/auth_action.php,几个关键的参数,action=login,username=用户名,password=密码,ajax=1,ac_id=1,ok。
下面可以编写curl命令了:
1 | curl -d "action=login&username=10154601140&password=password&ac_id=1&ajax=1" https://login.ecnu.edu.cn/include/auth_action.php |
提示login_ok
。
二、制成Shell脚本
这么一长串命令,每次都输一遍肯定特别麻烦。我们可以制成Shell脚本。
1 | vi network #创建名为network的脚本 |
然后将上面的curl命令输进去,:wq
保存。
1 | chmod 755 network #设置权限为可执行 |
1 | ls -l network #检查一下文件权限 |
如果设置成功,文件权限应为-rwxr-xr-x。现在,我们就可以运行脚本了:
1 | ./network |
三、扔进~/bin
1 | mkdir bin |
bin目录一般是默认的PATH环境变量,扔进去即可直接输入network
运行。如果PATH变量不包含此目录,我们可以修改.bashrc
文件:
1 | vi .bashrc |
在最下方加入export PATH=~/bin:"$PATH"
,保存:
1 | . .bashrc #重新读取.bashrc |
现在,我们即可输入network
直接连接校园网了。
参考文献
“编写第一个 Shell 脚本”. https://billie66.github.io/TLCL/book/zh/chap25.html (2017/10/14)