【ECNU】bash登陆校园网

【ECNU】bash登陆校园网

9/21/2018更新:

我写了一个Python 3脚本,pip install ecnunetwork 即可安装,安装后在终端敲network即可联网。

https://github.com/njzjz/ecnunetworkgithub.com图标

校园网的登陆页面是个网页,bash不能浏览网页,但是也有联网需求。幸好,curl命令可以发送POST请求。

一、curl发送POST

我们检查登陆页面(login.ecnu.edu.cn/srun_)的源代码,发现使用了jQuery,还有一个叫srun_portal.js的JavaScript脚本,显然登陆的POST请求就是从这里发送的:

打开srun_portal.js,我们看到这段post请求,下面还有login_ok,很显然就是这段了。记下post地址login.ecnu.edu.cn/inclu,几个关键的参数,action=login,username=用户名,password=密码,ajax=1,ac_id=1,ok。

下面可以编写curl命令了:

$ curl -d "action=login&username=10154601140&password=password&ac_id=1&ajax=1" login.ecnu.edu.cn/inclu


提示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 脚本”. billie66.github.io/TLCL (2017/10/14)

编辑于 2018-09-21

文章被以下专栏收录