srun

package module
v0.1.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2019 License: MIT Imports: 10 Imported by: 0

README

Srun-Cmd

Build Status License Gitter Say Thanks Donate

Description

北京理工大学校园网命令行登录工具

  • 支持linux、maxOS、windows
  • 基于Go语言实现

Release

可执行文件, 下载即可使用 latest

Update Log

2019.9.10

  • 修改优化登录逻辑
  • 修复一些bug

2019.1.3

  • 实现无缓冲输入密码(在macOS上测试通过)
  • 修复宿舍无法登录移动网的bug

2018.11.24

  • 增加登出功能
  • 增加查询流量和余额功能

2018.9.1

  • 实现登录与设置账号的功能

功能与原理

主要功能

  • 保存账号
  • 使用账号快速登录校园网

原理

工具会把账号信息保存为json存放到 ~/.srun/account.json 下 执行的时候自动读取账号信息事实现登录

Usage

假设运行前把编译好的可执行文件命名为srun, 加入系统path 如没有权限添加运行权限 chmod +x 如果遇到登录失败,请尝试重新设置账号常用登录网 srun account

查看帮助

$ srun -h
Srun v0.1.1

Options:
	-v                  Show version
	-h                  Show help
	-d                  Show debug message

Commands:
	account             Get/Set Username and Password
	login               Login Srun
	info                Get Srun Info
	logout              Logout Srun

设置账号

$ srun account

demo

查看账号

$ srun account get

登录校园网(要求先设置好账号密码)

使用默认服务商

$ srun
登录成功!
ip: 10.62.41.249
已用流量: 54,418.87M
已用时长: 366小时38分48秒
账户余额: ¥19.68

查看余额

$ srun info
已用流量: 54,418.87M
已用时长: 366小时38分48秒
账户余额: ¥19.68

登出校园网

$ srun logout
下线成功!

Contribute

编译

要求先安装好golang环境 go version > 1.10

先克隆项目

$ git clone https://github.com/monigo/srun-cmd

macOS下编译

$ make

$ make darwin

Windows下编译

$ make windows

Linux下编译

$ make linux

编译好的可执行文件在bin文件夹中

Thanks to

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrConnected = errors.New("已联网")
View Source
var ErrFailed = errors.New("登录失败")
View Source
var ErrRequest = errors.New("请求错误")
View Source
var PortalError = map[string]string{
	"E3001": "流量或时长已用尽",
	"E3002": "计费策略条件不匹配",
	"E3003": "控制策略条件不匹配",
	"E3004": "余额不足",
	"E3005": "在线变更计费策略",
	"E3006": "在线变更控制策略",
	"E3007": "超时",
	"E3008": "连线数超额,挤出在线表。",
	"E3009": "有代理行为",
	"E3010": "无流量超时",
	"E3101": "心跳包超时",
	"E4001": "Radius表DM下线",
	"E4002": "DHCP表DM下线",
	"E4003": "Juniper IPOE COA上线",
	"E4004": "Juniper IPOE COA下线",
	"E4005": "proxy表DM下线",
	"E4006": "COA在线更改带宽",
	"E4007": "本地下线",
	"E4008": "虚拟下线",
	"E4009": "策略切换时下发COA",
	"E4011": "结算时虚拟下线",
	"E4012": "下发COA",
	"E4101": "来自radius模块的DM下线(挤出在线表)",
	"E4102": "来自系统设置(8081)的DM下线",
	"E4103": "来自后台管理(8080)的DM下线",
	"E4104": "来自自服务(8800)的DM下线",
	"E4112": "来自系统设置(8081)的本地下线",
	"E4113": "来自后台管理(8080)的本地下线",
	"E4114": "来自自服务(8800)的本地下线",
	"E4122": "来自系统设置(8081)的虚拟下线",
	"E4123": "来自后台管理(8080)的虚拟下线",
	"E4124": "来自自服务(8800)的虚拟下线",
	"E2531": "用户不存在",
	"E2532": "两次认证的间隔太短",
	"E2533": "尝试次数过于频繁",
	"E2534": "有代理行为被暂时禁用",
	"E2535": "认证系统已关闭",
	"E2536": "系统授权已过期",
	"E2553": "密码错误",
	"E2601": "不是专用客户端",
	"E2606": "用户被禁用",
	"E2611": "MAC绑定错误",
	"E2612": "MAC在黑名单中",
	"E2613": "NAS PORT绑定错误",
	"E2614": "VLAN ID绑定错误",
	"E2615": "IP绑定错误",
	"E2616": "已欠费",
	"E2620": "已经在线了",
	"E2806": "找不到符合条件的产品",
	"E2807": "找不到符合条件的计费策略",
	"E2808": "找不到符合条件的控制策略",
	"E2833": "IP地址异常,请重新拿地址",
	"E5990": "数据不完整",
	"E5991": "无效的参数",
	"E5992": "找不到这个用户",
	"E5993": "用户已存在",
	"E5001": "用户创建成功",
	"E5002": "用户创建失败",
	"E5010": "修改用户成功",
	"E5011": "修改用户失败",
	"E5020": "修改用户成功",
	"E5021": "修改用户失败",
	"E5030": "转组成功",
	"E5031": "转组失败",
	"E5040": "购买套餐成功",
	"E5041": "购买套餐失败",
	"E5042": "找不到套餐",
	"E5050": "绑定MAC认证成功",
	"E5051": "解绑MAC认证成功",
	"E5052": "绑定MAC成功",
	"E5053": "解绑MAC成功",
	"E5054": "绑定nas port成功",
	"E5055": "解绑nas port成功",
	"E5056": "绑定vlan id成功",
	"E5057": "解绑vlan id成功",
	"E5058": "绑定ip成功",
	"E5059": "解绑ip成功",
	"E6001": "用户缴费成功",
	"E6002": "用户缴费失败",

	"E7001": "用户不存在",
	"E7002": "添加待结算队列失败",
	"E7003": "结算成功",
	"E7004": "添加已结算队列失败",
	"E7005": "扣除产品实例结算金额失败",
	"E7006": "没有找到产品实例",
	"E7007": "没有对该用户进行手动结算的权限",
	"E7008": "没有对该产品进行手动结算的权限",
	"E7009": "由于使用流量小于该产品结算设置而不扣费",
	"E7010": "由于使用时长小于该产品结算设置而不扣费",
	"E7011": "由于产品余额不足,根据结算设置而不扣费",
	"E7012": "由于产品余额不足,根据结算设置余额扣为0",
	"E7013": "由于产品余额不足,根据结算设置余额扣为负值",
	"E7014": "删除过期套餐操作成功",
	"E7015": "删除过期套餐操作失败",
	"E7016": "自动购买套餐成功",
	"E7017": "自动购买套餐失败",
	"E7018": "产品结算模式错误",

	"vcode_error": "验证码错误",
}

Functions

func Info

func Info(username, token, ip string) (err error)

api info

func Login

func Login(username, password string) (info form.QInfo, err error)

api Login step 1: get acid step 2: get challenge step 3: do login

func Logout

func Logout(username string) (err error)

api logout

func ParseHtml added in v0.1.12

func ParseHtml(url string, data url.Values) (err error)

get the info page and parse the html code

Types

This section is empty.

Directories

Path Synopsis
pkg
term
Package term provides structures and helper functions to work with terminal (state, sizes).
Package term provides structures and helper functions to work with terminal (state, sizes).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL