/njuNetLogin

南京大学校园网登陆脚本(适合服务器登陆)

Primary LanguagePythonMIT LicenseMIT

南京大学校园网登陆脚本

运行此脚本可以登陆登出南京大学校园网。主要可以被用来放到使用图形界面不方便的服务器上用以登陆校园网。由于脚本处于开发初期阶段,出 bug 的可能性很大,近期可能会多次更新修补。遇到 bug 的话可以提 issue,或可邮件联系我 pavin0702@gmail.com

环境配置

python>=3.6

下载

两个 python 文件下载其中一个即可。

zsh 用户推荐下载使用 njunet-zsh.py,因输出包括一些颜色,下载后可以改名为 njunet.py。也可直接下载 njunet.py,但没有色彩。

其他 shell 用户可以下载使用 njunet.py 文件。

或在合适的目录下输入以下命令下载完整项目:

git clone https://github.com/Pavinberg/njuNetLogin.git

基本使用

登陆校园网:

python njunet.py login

登出校园网:

python njunet.py logout

输入登陆命令后会要求输入账户名和密码。如果不希望每次都输入,可以打开源文件 njunet.py,将 username 变量设置为你的账户名。也可设定 password 变量为你的密码。但可以访问此文件的人都可以看到你的密码,因此请谨慎设置。

在已登陆的情况下输入登陆命令,会显示当前登陆账号的信息,不会重复登陆。

登出操作时,会检查是否有其他人登陆了校园网,提示你是否继续退出,以免退出了其他人的登陆。退出之前,会提示是否有你的后台进程正在运行,避免中断下载等进程(此提示会罗列大部分你的进程,不会具体分析每个进程的任务,请自行辨别)。如果不希望登出时进行询问,可以用 --user-u 参数进行账户指定,详见下文更多用法。

获得帮助可输入命令:

python njunet.py -h

更多用法

基本使用已可满足很大一部分需求,但在此罗列几种使用技巧和特殊场景。

1. 设为命令

实现在任何目录下都能通过一句命令登陆/登出校园网,效果如:

njunet.py login

具体操作为:打开源文件 njunet.py,在开头第一行写一行 shebang,即 python 的位置。类似于:

#!/path/to/your/python

可以通过命令 which python 查看当前 python 的位置,常见位置对应的 shebang 有 #!/usr/local/bin/python#!/anaconda3/bin/python 等,注意写成绝对路径。

随后将此脚本设定为可执行:

chmod u+x njunet.py

最后把此脚本放入合适的目录下,例如 ~/bin/,并把该目录添加到环境变量中,如输入命令:

export PATH=$HOME/bin:$PATH >> ~/.bashrc

重启终端或 source ~/.bashrc 即可使用。zsh 用户将 ~/.bashrc 替换为 ~/.zshrc 即可。

2. 命令行指定用户名作为检查

输入 --user-u 参数可以在命令行进行账户指定,登陆和登出有不同的效果。

登陆:

njunet.py -u 123456 login

在登陆操作下使用此参数,会检查命令中的指定账户与你之后输入的账户名或写入文件的账户名是否一致,如果不一致,会询问你是否使用命令行中的账户名登陆。

适用场景:在已在文件中写入账户名的情况下,想要临时使用某个其他账户名登陆。

登出:

njunet.py -u 123456 logout

在登出操作下使用此参数,如果命令中的指定账号与已登陆的账号相同,则正常退出。如果不同,则什么也不做,不会询问是否继续退出。

适用场景:下文的退出登陆系统时自动断网。

3. 退出登陆系统时自动断网

实现退出登陆系统(如退出登录服务器)时根据情况自动尝试断网。

shell 一般都可设置一个登出配置文件,bash 中默认是 ~/.bash_logout,zsh 中默认是 ~/.zlogout,退出登陆系统时会执行其中的命令,因此我们只需将退出的命令写在登出配置文件中即可。

由于不加 --user-u 参数的退出登陆会进行检查和询问,在其他人登陆了校园网而你想要退出系统时也会询问是否退出此校园网,这是不合适的。因此我们应在 ~/.bash_logout~/.zlogout 中写入类似如下命令:

/path/to/your/python /path/to/your/njunet.py -u 123456 logout

具体例如:

python ~/bin/njunet.py -u 123456 logout

如果你已设定此脚本为命令,则可直接写入

njunet.py -u 123456 logout

这样如果此时登陆校园网的不是你的账户,在你退出系统而自动执行上述命令时不会进行询问,而是直接退出。