【ECNU】bash登陆校园网

2017年11月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命令了:

$ 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脚本。

$ vi network #创建名为network的脚本

然后将上面的curl命令输进去,:wq保存。

$ chmod 755 network #设置权限为可执行

$ ls -l network #检查一下文件权限

如果设置成功,文件权限应为-rwxr-xr-x。现在,我们就可以运行脚本了:

$ ./network

三、扔进~/bin

$ mkdir bin

$ mv network bin

$ network

bin目录一般是默认的PATH环境变量,扔进去即可直接输入network运行。如果PATH变量不包含此目录,我们可以修改.bashrc文件:

$ vi .bashrc

在最下方加入export PATH=~/bin:”$PATH”,保存:

$ . .bashrc #重新读取.bashrc

现在,我们即可输入network直接连接校园网了。

参考文献

“编写第一个 Shell 脚本”. https://billie66.github.io/TLCL/book/zh/chap25.html (2017/10/14)

  • 本文作者: Jinzhe Zeng
  • 本文链接: 60.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!