Skip to content

Latest commit

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tunet-python

TUNet 2018 认证协议的纯 python 实现,含 auth4 / auth6 / net 认证。适用于服务器在无人交互时自动认证。

API

API 共 3 * 3 项功能,对于 https://{auth4,auth6,net}.tsinghua.edu.cn/ 分别有 login、logout、checklogin 三项功能。

用法示例:

>>>importtunet>>>print(tunet.auth4.login(username, password, net=True))
>>>print(tunet.net.checklogin())

在需要认证的网络环境下,tunet.auth4.login 的参数 net=True 用于同时完成准入认证和连接外网,相当于在 auth4 网页端勾选“访问校外网络”。 若无 net=True,则只登录校内准入认证,无法访问校外网络。

行为定义:

无需认证时需认证但未认证时已认证时
auth4.login即时返回即时返回即时返回
auth4.logout即时返回即时返回即时返回
auth4.checklogin即时返回即时返回即时返回
auth6.login即时返回即时返回即时返回
auth6.logout即时返回即时返回即时返回
auth6.checklogin即时返回即时返回即时返回
net.login即时返回即时异常退出即时返回
net.logout即时返回即时异常退出即时返回
net.checklogin即时返回即时异常退出即时返回

特殊地,

  • 如果无 IPv6 网络环境,则无法访问 auth6,此时 auth6 的三项功能都会即时异常退出。

API 总是提供原生的结果,如果不希望异常退出,或需要更友好的提示语,可自行包装一层。

命令行

提供简单的命令行包装,用法示例:

$ python cli.py auth4 checklogin
$ cat password.txt | python cli.py auth4 login --net -u username
$ python cli.py net checklogin

进程返回 0 的语义约定:

进程返回 0 的情况进程返回非 0 的情况
auth4 login成功登录,或此前已登录连接错误或帐号错误
auth4 logout成功登出,或此前已登出连接错误
auth4 checklogin确认处于登录状态连接错误或非登录状态
auth6 login成功登录,或此前已登录连接错误或帐号错误
auth6 logout成功登出,或此前已登出连接错误
auth6 checklogin确认处于登录状态连接错误或非登录状态
net login成功登录,或此前已登录连接错误或帐号错误
net logout成功登出,或此前已登出连接错误
net checklogin确认处于登录状态连接错误或非登录状态

login 的密码输入方式:如果标准输入流是 tty,则使用 getpass 读取,无回显;否则,从标准输入读取一行。

About

TUNet 2018 认证协议的纯 python 实现,含 auth4 / auth6 / net 认证。适用于服务器在无人交互时自动认证

Topics

Resources

Stars

153 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages